PLP Version <:= $PLP::VERSION :>

<: use Config; printf "\n", @$_ for ( ["System" => qx(uname -snrvm)], ["Server API" => $PLP::interface ? $PLP::interface : "?"], ["Perl" => sprintf '%vd', $^V], ["Perl API" => $Config{api_versionstring} || "?"], ["Build Date" => $Config{cf_time} || "?"], ["Debug Build" => $^P ? "yes ($^P)" : "no"], ["Thread Safety" => $Config{usethreads} ? "enabled" : "disabled"], ["Include Path" => join "; ", @INC], ); :>
%s%s

PLP Core

<: my %modules; s!/!::!g, s/\.pm$// and $modules{$_} = $_->VERSION || "" for keys %INC; printf "\n", @$_ for ( ["Loaded Modules" => join "
\n", map "$_ $modules{$_}", sort grep /^PLP/, keys %modules ], ["Debug Output" => join("; ", $PLP::DEBUG & 1 ? "run-time errors" : (), $PLP::DEBUG & 2 ? "headers" : (), ) || "disabled"], ["Caching" => $PLP::use_cache ? "on" : "off"], #TODO ); :>
%s%s

Environment

<: s/(?<=,)//g for values %ENV; # allow breaks at commas (HTTP_ACCEPT*) printf("\n", $_, defined $ENV{$_} ? EscapeHTML($ENV{$_}) : "no value" ) for sort keys %ENV; :>
%s%s

PLP Variables

<: for my $var (qw[ get post cookies header ]) { printf("\n", $var, $_, defined $$var{$_} ? EscapeHTML($$var{$_}) : "no value" ) for sort keys %$var; } :>
%s{'%s'}%s