You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Chris Bennett <ch...@bennettconstruction.us> on 2012/12/15 21:07:34 UTC

How best to get my mod_perl programs to run under CGI for non-mod_perl users?

Everything I use/write is strictly mod_perl (mod_perl-1.31 under
OpenBSD).

I am planning on releasing some of this open-source, but many users will
not be running mod_perl.

What might be the easiest way to go backwards to CGI without a huge
amount of work?
Should I write something that makes $r->print(); work as print?
I have read that CGI.pm and Apache::Request are similar but not the
same.
Is something already written to do this out there? A guide?

These applications use:
use Apache::Request();
use DBI();

All of these modules are using Apache::Registry, not handler.

Thanks,
Chris Bennett


Re: How best to get my mod_perl programs to run under CGI for non-mod_perl users?

Posted by Perrin Harkins <pe...@elem.com>.
 Hi Chris,

One approach would be to modify your applications so they use some kind of
abstraction layer, like Plack, that runs on top of both CGI and mod_perl.
 There's more on Plack here: http://plackperl.org/

Another option, since you used Registry, would be to change your use of
Apache::Request to something like CGI.pm which works on both.  You may not
need to change much else.

- Perrin


On Sat, Dec 15, 2012 at 3:07 PM, Chris Bennett <chris@bennettconstruction.us
> wrote:

> Everything I use/write is strictly mod_perl (mod_perl-1.31 under
> OpenBSD).
>
> I am planning on releasing some of this open-source, but many users will
> not be running mod_perl.
>
> What might be the easiest way to go backwards to CGI without a huge
> amount of work?
> Should I write something that makes $r->print(); work as print?
> I have read that CGI.pm and Apache::Request are similar but not the
> same.
> Is something already written to do this out there? A guide?
>
> These applications use:
> use Apache::Request();
> use DBI();
>
> All of these modules are using Apache::Registry, not handler.
>
> Thanks,
> Chris Bennett
>
>