You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Allen Day <al...@ucla.edu> on 2002/05/20 06:01:53 UTC

sending CGI ouput through a handler

Okay, I realize this has probably been covered before, but I couldn't find
anything in the archive...

I have a configuration like this:

<Location />
  SetHandler perl-script
  PerlHandler My::Handler
</Location>

My::Handler takes the requested file and adds some markup to it with the
Template Toolkit if the MIMEtype of the file is text/html.  I want to be
able to use the same handler to also add markup to the output of executed
CGI.  What is the best way to do this?

Should I set up a separate location for the CGI (I'm doing this,
actually) ?  Are there any extra directives needed?

TIA
Allen


Re: sending CGI ouput through a handler

Posted by Perrin Harkins <pe...@elem.com>.
> My::Handler takes the requested file and adds some markup to it with
the
> Template Toolkit if the MIMEtype of the file is text/html.  I want to
be
> able to use the same handler to also add markup to the output of
executed
> CGI.  What is the best way to do this?

You can't feed the output of mod_cgi to mod_perl, at least not in Apache
1.x.  The best thing to do (at least for performance) would be to
rewrite the CGI so that you call it as a module from your handler.
Another approach would be to use Apache::Filter to grab the output from
PerlRun or Regsistry.  You could also sublass PerlRun or Registry and
add your handler code to it.

- Perrin


Re: sending CGI ouput through a handler

Posted by Stas Bekman <st...@stason.org>.
Allen Day wrote:
> Okay, I realize this has probably been covered before, but I couldn't find
> anything in the archive...
> 
> I have a configuration like this:
> 
> <Location />
>   SetHandler perl-script
>   PerlHandler My::Handler
> </Location>
> 
> My::Handler takes the requested file and adds some markup to it with the
> Template Toolkit if the MIMEtype of the file is text/html.  I want to be
> able to use the same handler to also add markup to the output of executed
> CGI.  What is the best way to do this?
> 
> Should I set up a separate location for the CGI (I'm doing this,
> actually) ?  Are there any extra directives needed?

by CGI do you mean a script running under mod_cgi? If it's registry you 
should be able to use stacked handlers:
http://perl.apache.org/release/docs/1.0/guide/config.html#Stacked_Handlers

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com