in reply to Code counter

If you're planning to read through a list of files from the command line, then you should really use <> - it saves you all the work of opening all the files etc..

And, rather than all that work with $in_pod, I'd just use the range operator.

A line containing no alphanumerics is not counted as a line of code

Not sure I'd agree with that. Haven't you seen some of the JAPHs posted :) I'd personally check for absence of non-whitespace.

So, personally, I'd reduce all this down to:

#!/usr/bin/perl -w use strict; my $total = my $pod = my $comment = my $blank = my $code = 0; while(<>) { $total++; if ( /^=\w+/ .. /^=cut/ ) { $pod++; next } if ( /^\s*#/ ) { $comment++; next } unless ( /\S/ ) { $blank++; next } $code++; } print <<END; Total: $total POD: $pod Comments: $comment Blank: $blank Code: $code END

Tony

Replies are listed 'Best First'.
Re: Re: Code counter
by yodabjorn (Monk) on May 04, 2002 at 10:36 UTC
    verry nice.. I always just do a lazy aproach: cat *.pl | perl -ne 'print unless /^\s*$|^#/;' | wc -l could integrate the pod match and do a lot more with this.. but I am lazy :-P