in reply to Cleaning up unused subroutines
I use cloc (cloc.sf.net) in a bash script I call 'apparently_unused'
#!/bin/bash cloc --strip-comments=nc $1 > /dev/null 2>&1 if [ -e "$1.nc" ] then subs=`grep -E "^sub " $1.nc | cut -d' ' -f2 | sort -u` res=(); for sub in ${subs} do grep ${sub} $1.nc | grep -vq "sub ${sub}" if [ "$?" == "1" ] then res=("${res[@]}" "${sub}") fi done if [ ${#res[@]} == 0 ] then echo All subroutines in $1 appear to be used else echo $1 apparently unused: for sub in ${res[@]} do echo " $sub" done fi rm $1.nc else echo "failed to strip comments from $1" fi
This is only 'apparently' unused subroutines because of calls that can be made in the way others have pointed out that this simple grep will miss. The cloc program cleans up a lot of false negatives by removing comments that may include subroutine names. Also, this assumes you have 'sub' lines that start at the first column - use perltidy.
|
---|