#!/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 .= "\n"; } $page .= "
$key$queryparams{$key}
\n"; } $page .= "

Environment variables

\n"; $page .= "\n"; foreach my $key ( sort keys %$env ) { $page .= "\n"; } $page .= "
$key$env->{$key}
\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();