Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Warnings for unused subs? here's find_unused_subs.pl!

by dada (Chaplain)
on Jul 26, 2002 at 10:12 UTC ( #185481=note: print w/replies, xml ) Need Help??


in reply to Warnings for unused subs

here is a simple, little program called find_unused_subs.pl:
#!/usr/bin/perl use strict; my $F = shift || die "no file specified"; my $xref_cmd = "$^X -MO=Xref,-r $F"; my %subdef; my %subused; my @fields = qw( file context line package sigil name action ); open TMP, "$xref_cmd |"; # Xref mangles up filenames, so we need to binmode it binmode TMP; while(<TMP>) { chomp; my %data; @data{ @fields } = split( /\s+/ ); if( $data{action} eq "subdef" and $data{package} eq "main" and $data{file} eq $F ) { $subdef{ $data{name} } = "$data{file}:$data{line}"; } if( $data{action} eq "subused" and $data{package} eq "main" and $data{file} eq $F ) { $subused{ $data{name} } = "$data{file}:$data{line}"; } } close TMP; foreach my $sub (keys %subdef) { next if exists $subused{ $sub }; print "$subdef{ $sub } $sub\n"; }
it only works on plain scripts, where subs are in the main package. feel free to enhance it :-)

cheers,
Aldo

__END__ $_=q,just perl,,s, , another ,,s,$, hacker,,print;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://185481]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2021-06-13 21:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)












    Results (58 votes). Check out past polls.

    Notices?