Mojolicious-Plugin-CGI
view release on metacpan or search on metacpan
lib/Mojolicious/Plugin/CGI.pm view on Meta::CPAN
Note that the helper is registered in all of the examples.
=head2 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.
=head2 Support for semicolon in query string
plugin CGI => {
support_semicolon_in_query_string => 1,
...
};
The code above needs to be added before other plugins or handlers which use
L<Mojo::Message::Request/url>. It will inject a C<before_dispatch>
hook which saves the original QUERY_STRING, before it is split on
"&" in L<Mojo::Parameters>.
=head1 ATTRIBUTES
=head2 env
Holds a hash ref containing the environment variables that should be
used when starting the CGI script. Defaults to C<%ENV> when this module
was loaded.
This plugin will create a set of environment variables depenendent on the
request passed in which is according to the CGI spec. In addition to L</env>,
these dynamic variables are set:
CONTENT_LENGTH, CONTENT_TYPE, 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"
Plus all headers are exposed. Examples:
.----------------------------------------.
| Header | Variable |
|-----------------|----------------------|
| Referer | HTTP_REFERER |
| User-Agent | HTTP_USER_AGENT |
| X-Forwarded-For | HTTP_X_FORWARDED_FOR |
'----------------------------------------'
=head2 register
$self->register($app, [ $route => $script ]);
$self->register($app, %args);
$self->register($app, \%args);
C<route> and L<path> need to exist as keys in C<%args> unless given as plain
arguments.
C<$route> can be either a plain path or a route object.
=head1 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.
=head1 AUTHOR
Jan Henning Thorsen - C<jhthorsen@cpan.org>
=cut
( run in 0.611 second using v1.01-cache-2.11-cpan-ceb78f64989 )