X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController%2FWrapCGI.pm;h=71b35926e5ce0609d0aeeb98e0a0a70d1cec63b7;hb=2340af9d7778ff7ed8e40289015463570ed09c6e;hp=39657e780818ae759f8d54a3642120e620c5bd2f;hpb=21a20b7e40ead509ca832db9099a4b76d3d61cd4;p=catagits%2FCatalyst-Controller-WrapCGI.git diff --git a/lib/Catalyst/Controller/WrapCGI.pm b/lib/Catalyst/Controller/WrapCGI.pm index 39657e7..71b3592 100644 --- a/lib/Catalyst/Controller/WrapCGI.pm +++ b/lib/Catalyst/Controller/WrapCGI.pm @@ -15,27 +15,27 @@ Catalyst::Controller::WrapCGI - Run CGIs in Catalyst =head1 VERSION -Version 0.002 +Version 0.0025 =cut -our $VERSION = '0.002'; +our $VERSION = '0.0025'; =head1 SYNOPSIS package MyApp::Controller::Foo; use parent qw/Catalyst::Controller::WrapCGI/; + use CGI (); sub hello : Path('cgi-bin/hello.cgi') { my ($self, $c) = @_; $self->cgi_to_response($c, sub { - use CGI ':standard'; - - print header, start_html('Hello'), - h1('Catalyst Rocks!'), - end_html; + my $q = CGI->new; + print $q->header, $q->start_html('Hello'), + $q->h1('Catalyst Rocks!'), + $q->end_html; }); } @@ -55,6 +55,9 @@ In your .conf, configure which environment variables to pass: Allows you to run Perl code in a CGI environment derived from your L context. +B<*WARNING*>: do not export L functions into a Controller, it will break +with L 5.8 onward. + If you just want to run CGIs from files, see L. =head1 CONFIGURATION @@ -146,7 +149,11 @@ sub wrap_cgi { my @env; - for (@{ $self->{CGI}{pass_env} }) { + my $pass_env = $self->{CGI}{pass_env}; + $pass_env = [] if not defined $pass_env; + $pass_env = [ $pass_env ] unless ref $pass_env; + + for (@$pass_env) { if (m!^/(.*)/\z!) { my $re = qr/$1/; push @env, grep /$re/, keys %ENV;