in reply to Re: Cleaning up unused subroutines
in thread Cleaning up unused subroutines

Hello neszt76 and welcome to PerlMonks. We use Perl here.

perl -nE '$f.=$_}{$t{$_}=()=$f=~/\Q$_/g for $f=~/^sub\s+(\w+)/gm;say " +$t{$_} $_" for sort {$t{$b} <=> $t{$a}} keys %t;' $FILE

This uses precisely* the same logic as your shell loop above (and therefore has the same algorithmic flaws). Nonetheless, advantages of the Perl approach include:

Enjoy.

*Not precisely: there's one trivial fix to avoid lines which start with eg. "submarine".