Provided by: libmojolicious-plugin-cgi-perl_0.25-1_all 

NAME
Mojolicious::Plugin::CGI - Run CGI script from Mojolicious
VERSION
0.25
DESCRIPTION
This plugin enable Mojolicious to run Perl CGI scripts. It does so by forking a new process with a
modified environment and reads the STDOUT in a non-blocking manner.
SYNOPSIS
Standard usage
use Mojolicious::Lite;
plugin CGI => [ "/cgi-bin/script" => "/path/to/cgi/script.pl" ];
Using the code above is enough to run "script.pl" when accessing <http://localhost:3000/cgi-bin/script>.
Complex usage
plugin CGI => {
# Specify the script and mount point
script => "/path/to/cgi/script.pl",
route => "/some/route",
# %ENV variables visible from inside the CGI script
env => {}, # default is \%ENV
# Path to where STDERR from cgi script goes
errlog => "/path/to/file.log",
# The "before" hook is called before script start
# It receives a Mojolicious::Controller which can be modified
before => sub {
my $c = shift;
$c->req->url->query->param(a => 123);
},
};
The above contains all the options you can pass on to the plugin.
Running code refs
plugin CGI => {
route => "/some/path",
run => sub {
my $cgi = CGI->new;
# ...
}
};
Instead of calling a script, you can run a code block when accessing the route. This is (pretty much)
safe, even if the code block modifies global state, since it runs in a separate fork/process.
Support for semicolon in query string
plugin CGI => {
support_semicolon_in_query_string => 1,
...
};
The code above need to be added before other plugins or handler which use "url" in
Mojo::Message::Request. It will inject a "before_dispatch" hook which saves the original QUERY_STRING,
before it is split on "&" in Mojo::Parameters.
ATTRIBUTES
env
Holds a hash ref containing the environment variables that should be used when starting the CGI script.
Defaults to %ENV when this module was loaded.
ioloop
Holds a Mojo::IOLoop object.
METHODS
emulate_environment
%env = $self->emulate_environment($c);
Returns a hash which contains the environment variables which should be used by the CGI script.
In addition to "env", these dynamic variables are set:
CONTENT_LENGTH, CONTENT_TYPE, HTTP_COOKIE, HTTP_HOST, HTTP_IF_NONE_MATCH,
HTTP_REFERER, HTTP_USER_AGENT, HTTPS, PATH, PATH_INFO, QUERY_STRING,
REMOTE_ADDR, REMOTE_HOST, REMOTE_PORT, REMOTE_USER, REQUEST_METHOD,
SCRIPT_NAME, SERVER_PORT, SERVER_PROTOCOL.
Additional static variables:
GATEWAY_INTERFACE = "CGI/1.1"
SERVER_ADMIN = $ENV{USER}
SCRIPT_FILENAME = Script name given as argument to register.
SERVER_NAME = Sys::Hostname::hostname()
SERVER_SOFTWARE = "Mojolicious::Plugin::CGI"
register
$self->register($app, [ $route => $script ]);
$self->register($app, %args);
$self->register($app, \%args);
"route" and path need to exist as keys in %args unless given as plain arguments.
$route can be either a plain path or a route object.
COPYRIGHT AND LICENSE
Copyright (C) 2014, Jan Henning Thorsen
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic
License version 2.0.
AUTHOR
Jan Henning Thorsen - "jhthorsen@cpan.org"
perl v5.20.2 2015-11-27 Mojolicious::Plugin::CGI(3pm)