NAME¶
Plack::Runner - plackup core
SYNOPSIS¶
# Your bootstrap script
use Plack::Runner;
my $app = sub { ... };
my $runner = Plack::Runner->new;
$runner->parse_options(@ARGV);
$runner->run($app);
DESCRIPTION¶
Plack::Runner is the core of plackup runner script. You can create your own
frontend to run your application or framework, munge command line options and
pass that to "run" method of this class.
"run" method does exactly the same thing as the plackup script does,
but one notable addition is that you can pass a PSGI application code
reference directly to the method, rather than via ".psgi" file path
or with "-e" switch. This would be useful if you want to make an
installable PSGI application.
Also, when "-h" or "--help" switch is passed, the usage text
is automatically extracted from your own script using Pod::Usage.
NOTES¶
Do not directly call this module from your ".psgi", since that makes
your PSGI application unnecessarily depend on plackup and won't run other
backends like Plack::Handler::Apache2 or mod_psgi.
If you
really want to make your ".psgi" runnable as a
standalone script, you can do this:
my $app = sub { ... };
unless (caller) {
require Plack::Runner;
my $runner = Plack::Runner->new;
$runner->parse_options(@ARGV);
return $runner->run($app);
}
return $app;
WARNING: this section used to recommend "if (__FILE__ eq $0)"
but it's known to be broken since Plack 0.9971, since $0 is now
always
set to the .psgi file path even when you run it from plackup.
SEE ALSO¶
plackup