builder { # [...] sub { my $psgi_env = shift; /^\/$/ and $_ = "" for $psgi_env->{SCRIPT_NAME}; $psgi_env->{PATH_INFO} ||= trim( @{$psgi_env}{'SCRIPT_FILENAME', 'DOCUMENT_ROOT'}, ".html" ); $poet->app_class('Mason')->handle_psgi($psgi_env); }; }; sub trim { my ($string, $head, $tail) = @_; $string =~ s{ \A \Q$head\E (.+?) \Q$tail\E \z }{$1}xmsr; }