CGI::Parse::PSGI - Parses CGI output and creates PSGI response out of it
use CGI::Parse::PSGI qw(parse_cgi_output); my $output = YourApp->run; my $psgi_res = parse_cgi_output(\$output);
An option hash can also be passed:
my $psgi_res = parse_cgi_output(\$output, \%options);
CGI::Parse::PSGI exports one function parse_cgi_output that takes a filehandle or a reference to a string to read a CGI script output, and creates a PSGI response (an array reference containing status code, headers and a body) by reading the output.
parse_cgi_output
Use CGI::Emulate::PSGI if you have a CGI code not the output, which takes care of automatically parsing the output, using this module, from your callback code.
As mentioned above, parse_cgi_output can accept an options hash as the second argument.
Currently the options available are:
ignore_status_line
A boolean value, defaulting to 0 (false). If true, the status in the HTTP protocol line is not used to set the default status in absence of a status header.
The options can be supplied to earlier versions, and will be ignored without error. Hence you can preserve legacy behaviour like this:
parse_cgi_output(\$output, {ignore_status_line => 1});
This will ensure that if the script output includes an edge case like this:
HTTP/1.1 666 SNAFU Content-Type: text/plain This should be OK!
then the old behaviour of ignoring the status line and returning 200 is preserved.
Tatsuhiko Miyagawa
CGI::Emulate::PSGI
To install CGI::Emulate::PSGI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CGI::Emulate::PSGI
CPAN shell
perl -MCPAN -e shell install CGI::Emulate::PSGI
For more information on module installation, please visit the detailed CPAN module installation guide.