#!/usr/bin/perl -w
use strict;
use URI::Escape;
$|++;
$0 =~ m!([^/\\]+)$!;
my $script = $ENV{SCRIPT_NAME} || $1 || 'perldoc.cgi';
print "Content-type: text/html\n\n";
$ENV{QUERY_STRING} or error( "Usage $script?command
Try $script?perldoc\n" );
uri_unescape($ENV{QUERY_STRING}) =~ /^\s*([\w :-]+)\s*\z/
or error( "Bad query string: '$ENV{QUERY_STRING}'\n" );
chdir '/tmp';
open DOC, "perldoc -u $1|pod2html --header --title='$1' 2>/dev/null |"
or error( "Could not exec perldoc or pod2html. $!\n" );
while () {
s{href="/([^."]+)\.html}
{ local $_= $1; s|/|::|g; qq!href="$script?$_! }gei;
print;
}
close DOC;
sub error { print "Error: ", shift; exit };