Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

plack::handler::cgi(3pm) [debian man page]

Plack::Handler::CGI(3pm)				User Contributed Perl Documentation				  Plack::Handler::CGI(3pm)

NAME
Plack::Handler::CGI - CGI handler for Plack SYNOPSIS
Want to run PSGI application as a CGI script? Rename .psgi to .cgi and change the shebang line like: #!/usr/bin/env plackup # rest of the file can be the same as other .psgi file You can alternatively create a .cgi file that contains something like: #!/usr/bin/perl use Plack::Loader; my $app = Plack::Util::load_psgi("/path/to/app.psgi"); Plack::Loader->auto->run($app); This will auto-recognize the CGI environment variable to load this class. If you really want to explicitly load the CGI handler, you can. For instance you might do this when you want to embed a PSGI application server built into CGI-compatible perl-based web server: use Plack::Handler::CGI; Plack::Handler::CGI->new->run($app); DESCRIPTION
This is a handler module to run any PSGI application as a CGI script. UTILITY METHODS
setup_env() my $env = Plack::Handler::CGI->setup_env(); my $env = Plack::Handler::CGI->setup_env(\%override_env); Sets up the PSGI environment hash for a CGI request from %ENV> and returns it. You can can provide a hashref of key/value pairs to override the defaults if you would like. SEE ALSO
Plack perl v5.14.2 2011-06-22 Plack::Handler::CGI(3pm)

Check Out this Related Man Page

CGI::PSGI(3pm)						User Contributed Perl Documentation					    CGI::PSGI(3pm)

NAME
CGI::PSGI - Adapt CGI.pm to the PSGI protocol SYNOPSIS
use CGI::PSGI; my $app = sub { my $env = shift; my $q = CGI::PSGI->new($env); return [ $q->psgi_header, [ $body ] ]; }; DESCRIPTION
This module is for web application framework developers who currently uses CGI to handle query parameters, and would like for the frameworks to comply with the PSGI protocol. Only slight modifications should be required if the framework is already collecting the body content to print to STDOUT at one place (rather using the print-as-you-go approach). On the other hand, if you are an "end user" of CGI.pm and have a CGI script that you want to run under PSGI web servers, this module might not be what you want. Take a look at CGI::Emulate::PSGI instead. Your application, typically the web application framework adapter should update the code to do "CGI::PSGI->new($env)" instead of "CGI->new" to create a new CGI object. (This is similar to how CGI::Fast object is initialized in a FastCGI environment.) INTERFACES SUPPORTED
Only the object-oriented interface of CGI.pm is supported through CGI::PSGI. This means you should always create an object with "CGI::PSGI->new($env)" and should call methods on the object. The function-based interface like "use CGI ':standard'" does not work with this module. METHODS
CGI::PSGI adds the following extra methods to CGI.pm: env $env = $cgi->env; Returns the PSGI environment in a hash reference. This allows CGI.pm-based application frameworks such as CGI::Application to access PSGI extensions, typically set by Plack Middleware components. So if you enable Plack::Middleware::Session, your application and plugin developers can access the session via: $cgi->env->{'plack.session'}->get("foo"); Of course this should be coded carefully by checking the existence of "env" method as well as the hash key "plack.session". psgi_header my ($status_code, $headers_aref) = $cgi->psgi_header(%args); Works like CGI.pm's header(), but the return format is modified. It returns an array with the status code and arrayref of header pairs that PSGI requires. If your application doesn't use "$cgi->header", you can ignore this method and generate the status code and headers arrayref another way. psgi_redirect my ($status_code, $headers_aref) = $cgi->psgi_redirect(%args); Works like CGI.pm's redirect(), but the return format is modified. It returns an array with the status code and arrayref of header pairs that PSGI requires. If your application doesn't use "$cgi->redirect", you can ignore this method and generate the status code and headers arrayref another way. LIMITATIONS
Do not use CGI::Pretty or something similar in your controller. The module messes up CGI's DIY autoloader and breaks CGI::PSGI (and potentially other) inheritance. AUTHOR
Tatsuhiko Miyagawa <miyagawa@bulknews.net> Mark Stosberg <mark@summersault.com> LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
CGI, CGI::Emulate::PSGI perl v5.12.4 2011-08-29 CGI::PSGI(3pm)
Man Page