Hi Chris,

The latest version of Apache::Filter has Apache::PerlRunFilter, which is (to my
knowledge) the first Filter-aware version of Registry or PerlRun.  Try giving
that a shot.

The SSIChain & OutputChain side of things isn't so well supported anymore, it
may not be worth going in that direction.


[EMAIL PROTECTED] (Christopher Hicks) wrote:
>I've used the lines below and the various other provided incantations for
>using Apache::SSI or Apache::SSIChain.
>
>PerlModule Apache::SSIChain
>PerlModule Apache::Filter
>PerlModule Apache::SSI
>PerlModule Apache::OutputChain
>Alias /ssiperl/ /www/perl/ssibin/
><Location /ssiperl>
>       SetHandler perl-script
>#      PerlSendHeader On
>       PerlSetVar Filter On
>#      PerlHandler Apache::OutputChain Apache::SSIChain Apache::Registry
>#      PerlHandler Apache::SSIChain Apache::Registry
>       PerlHandler Apache::Registry Apache::SSI
>       Options +ExecCGI
></Location>
>
>The SSI's get included, but they're all at the top of the file.  Both of
>the PerlHandler lines commented out above have SSIChain as the last thing
>which is what the docs say to do.  But the includes still get included
>before the rest of the file.
>
>I've scoured the modperl archives.  I've read through the source and
>documentation to Apache::SSI*.  Does anyone have any ideas?
>
>My workaround:
>
>sub processSSI {
>       my ($text,$r) = @_;
>
>       my @lines = split(/\n/,$text);
>
>       my ($line,@el,$command,$key,$val,%param);
>
>       foreach $line (@lines) {
>               if ($line =~ /<!--#(.*)-->/) {
>                       @el = split(/\s+/,$1);
>                       $command = lc(shift(@el));
>                       foreach (@el) {
>                               ($key,$val) = split(/=/);
>                               $key = lc($key); # lower case key
>
>                               # strip double quotes if they're there
>                               # and balanced
>                               if (substr($val,0,1) eq '"') {
>                                       if (substr($val,-1,1) eq '"') {
>                                               chop($val);
>                                               substr($val,0,1) = '';
>                                       }
>                               }
>                               $param{$key}=$val;
>                       }
>                       if ($command eq "include") {
>                               if (defined( $param{'virtual'} )) {
>                               
Apache::Include->virtual($param{'virtual'});
>                               }
>                       }
>               } else {
>                       print $line, "\n";
>               }
>       }
>}
>
>This handles my needs.  It is a disadvantage to be stuck with putting
>anything that isn't an "include virtual" into a file which is then called
>via an "include virtual".  But at least it works.
>
>-- 
></chris>
>
>"The only thing more frightening than a programmer with a screwdriver
>or a hardware enginner with a program is a user with wire cutters and
>the root password."            - Elizabeth Zwicky
>

  -------------------                            -------------------
  Ken Williams                             Last Bastion of Euclidity
  [EMAIL PROTECTED]                            The Math Forum

Reply via email to