diff options
Diffstat (limited to 'helpers/perl')
-rw-r--r-- | helpers/perl | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/helpers/perl b/helpers/perl index 2a01a096..83ab1a10 100644 --- a/helpers/perl +++ b/helpers/perl @@ -15,33 +15,36 @@ sub print_modules_real { # (the shorter being the pattern to be used as the regexp) # word 'Fi', base 'File' -> match 'File' against 'Fi' # word 'File::Sp', base 'File' -> match 'File::Sp' against 'File' - return if - $base && - $word && - $base !~ /^\Q$word/ && - $word !~ /^\Q$base/; + return + if $base + && $word + && $base !~ /^\Q$word/ + && $word !~ /^\Q$base/; chdir($dir) or return; # print each file - foreach my $file (sort(glob('*.pm'),glob('*.pod'))) { + foreach my $file (sort(glob('*.pm'), glob('*.pod'))) { next if ($file =~ /\.pod$/ and not $include_pod); $file =~ s/\.(?:pm|pod)$//; my $module = $base . $file; next if $module !~ /^\Q$word/; next if $seen{$module}++; - print $module . "\n"; + print $module, "\n"; } # recurse in each subdirectory - foreach my $directory (grep { -d } glob('*')) { + foreach my $directory (grep {-d} glob('*')) { my $subdir = $dir . '/' . $directory; if ($directory =~ /^(?:[.\d]+|$Config{archname}|auto)$/) { + # exclude subdirectory name from base print_modules_real(undef, $subdir, $word, $include_pod); } else { + # add subdirectory name to base - print_modules_real($base . $directory . '::', $subdir, $word, $include_pod); + print_modules_real($base . $directory . '::', + $subdir, $word, $include_pod); } } } @@ -60,7 +63,7 @@ sub print_functions { my ($word) = @_; my $perlfunc; - for ( @INC, undef ) { + for (@INC, undef) { return if not defined; $perlfunc = catfile $_, qw( pod perlfunc.pod ); last if -r $perlfunc; @@ -69,16 +72,16 @@ sub print_functions { open my $fh, '<', $perlfunc or return; my $nest_level = -1; - while ( <$fh> ) { + while (<$fh>) { next if 1 .. /^=head2 Alphabetical Listing of Perl Functions$/; ++$nest_level if /^=over/; --$nest_level if /^=back/; - next if $nest_level; + next if $nest_level; next unless /^=item (-?\w+)/; my $function = $1; next if $function !~ /^\Q$word/; next if $seen{$function}++; - print $function . "\n"; + print $function, "\n"; } } @@ -93,4 +96,3 @@ if ($type eq 'functions') { } elsif ($type eq 'perldocs') { print_modules($word, 1); } - |