After banging my head all day I have narrowed this down just a little...
I had a terrible time working out WHY the Test code works but nothing
else does. And I have finally solved that, but not why.
The answer is which Handler for the original content being filtered.
I added a simple handler to the ExpandTest.pm and changed config to
<Location /zx>
SetHandler modperl
PerlResponseHandler Zaltana::ExpandTest::response
PerlOutputFilterHAndler Zaltana::ExpandTest
</Location>
And it works fine - assuming of course that I only want to filter my
own Perl code.
Change the above to:
<Location /zx>
SetHandler default
PerlOutputFilterHAndler Zaltana::ExpandTest
</Location>
And it segfaults every time.
One of the reasons of course to write a Filter is that I don't have
access to the code producing the content (in my case that is a
combination of C, Perl, PHP, Subversion modules etc) - so I want to
simply do a filter on the way out.
It should be noted that the Subrequest can be anything - that works
well - it can be default or modperl - or anything I have tried. It is
the original thing you are trying to filter that is the problem i.e.
the thing being filtered, not the subrequest being requested.
Once this is solved I will write up an extra test which will be along
the lines of TestFilter/out_str_subreq_default_default - currently
the tests check that the Subrequest can be default or modperl, but
not the original.
Scott