#!/usr/bin/perl -w
use strict;
use FCGI::Async;
use IO::Async::Loop;
my $loop = IO::Async::Loop->new();
sub on_request
{
my ( $fcgi, $req ) = @_;
my $env = $req->params();
my $page = "";
my $path = $env->{PATH_INFO} || "/";
my $qs = $env->{QUERY_STRING} || "";
my %queryparams = map { m/^(.*?)=(.*)$/ && ( $1, $2 ) } split( m/&/, $qs );
$page = "
Request Variables
\n";
$page .= "Basics
\n" .
"Path: $path
\n";
if ( keys %queryparams ) {
$page .= "Query parameters
\n" .
"\n";
foreach my $key ( sort keys %queryparams ) {
$page .= "| $key | $queryparams{$key} |
\n";
}
$page .= "
\n";
}
$page .= "Environment variables
\n";
$page .= "\n";
foreach my $key ( sort keys %$env ) {
$page .= "| $key | $env->{$key} |
\n";
}
$page .= "
\n";
$req->print_stdout(
"Content-type: text/html\r\n" .
"Content-length: " . length( $page ) . "\r\n" .
"\r\n" .
$page . "\r\n"
);
$req->finish();
}
my $fcgi = FCGI::Async->new(
loop => $loop,
on_request => \&on_request,
);
$loop->loop_forever();