<%PERL> my $dirname = File::Basename::dirname($INC{'RT.pm'}); my $localdir = $dirname."/../local/lib"; my @found; File::Find::find( { untaint => 1, wanted => sub { return unless /(\w+)\.(?:pm|pod)$/; return if $1 =~ /_(?:_Local|Vendor|Overlay)/; my $name = $File::Find::name; $name =~ s/.*lib\b.//; $name =~ s!\.(?:pm|pod)!!i; $name =~ s!\W!::!g; push @found, $name; },follow => ($^O ne 'MSWin32') }, $dirname,$localdir ); my ($prev, $indent); foreach my $file (sort @found) { my ($parent, $name) = ($1, $2) if $file =~ /(?:(.*)::)?(\w+)$/; if ($file =~ /^$prev\::(.*)/) { my $foo = $1; while ($foo =~ s/(\w+):://) { $indent++; $m->print(('   ' x $indent)); $m->print("$1
"); } $indent++; } elsif ($prev !~ /^$parent\::/) { while ($parent =~ s/(\w+)//) { next if $prev =~ s/\b$1:://; while ($prev =~ s/:://) { $indent--; } $m->print(('   ' x $indent)); $m->print("$1
"); $indent++; } } elsif ($prev =~ /^$parent\::(.*::)/) { my $foo = $1; while ($foo =~ s/:://) { $indent--; } } $m->print( ( '   ' x $indent ) . '' . $name . '
' ."\n" ); $prev = $file; } <%INIT> require File::Basename; require File::Find; require File::Temp; require File::Spec; require Pod::Simple::HTML; <%ARGS> $n => '' $method => '' $Target => '&method=Body'