- uri_unescape($ENV{QUERY_STRING}) =~ /^([\w\s:-]*)$/ + uri_unescape($ENV{QUERY_STRING}) =~ /^([\w :-]+)\z/ - exec "perldoc -u $1|pod2html --header --title='$1'"; + exec "perldoc -u $1|pod2html --header --title='$1' 2>/dev/null"; #### #!/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 };