Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: a list of functions within a pm

by mikfire (Deacon)
on Jul 19, 2001 at 23:09 UTC ( #98196=note: print w/replies, xml ) Need Help??

in reply to a list of functions within a pm

I am not exactly sure how you want this list displayed, but the attached code is one I have used before to accomplish a similar job.

It expects the name of the file to be searched as the only command line parameter. It will also skip any subroutine whose name begins with an underscore - as I said, this is ripped from a larger program ( the second toy ) doing something similar.

I also cause it to print the line number where the sub definition begins.

#!/usr/bin/perl -w use strict; my $source = shift @ARGV || ''; my %keyword = (); unless ( $source ) { print "Usage: $0 <file>\n"; exit; } open SRC, $source or die "Couldn't open $source : $!"; while( <SRC> ) { my ( $package, $name ); $package = $1 if ( ! $package && /^package\s+(.+);/ ); next unless ( /^sub\s+(.+){\s*$/ ); $name = $1; next if ( substr($name,0,1) eq "_" ); $name =~ s/\s+$//; $keyword{$name} = $.; } close SRC; for ( keys %keyword ) { print "$keyword{$_}:$_\n"; }

Update: Do NOT use Opera for Solaris when submitting - it seems to add a whole lot of newlines. Sorry for the mess.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://98196]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2018-06-22 19:45 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.