#!perl -w # # by Jeff Zucker # # may be freely modified and distributred under the same terms as Perl itself # use strict; use CGI; use CGI::Carp qw/fatalsToBrowser/; use File::Find; use Pod::Html; my $page = new CGI; my $modname = $page->param('mod') || ''; show_form(); if( $modname =~ m#/# ) { show_dir($modname); } else { show_pod( $modname ); } sub show_form { print $page->header, $page->start_html(-title=>'POD FINDER'), $page->start_form, $page->b("Module Name : "), $page->textfield(-name=>'mod'), $page->end_form, $page->end_html, ; } sub show_pod { my $modname = shift; return unless $modname; $modname =~ s#::#/#g; my $filename = findmod( $modname ); pod2html("--quiet","--infile=$filename") if $filename; } sub show_dir { my $dir = shift; $dir =~ s#/$##g; my $scriptname = $page->script_name; for(@INC){ my $fdir = "$_/$dir"; if( -d $fdir ) { opendir(D,$fdir) || die $!; my @files = readdir D; closedir D; for(@files) { next unless /(.*)\.(pm|pod)$/i; print "$dir\:\:$1
"; } } } return ''; } sub findmod { my $mod = shift; if (-e $mod ) { return $mod; } for(@INC){ my $modname = "$_/$mod.pm"; if( -e $modname ) { return $modname; } $modname = "$_/$mod.pod"; if( -e $modname ) { return $modname; } } return ''; } __END__