brian d foy > SourceCode-LineCounter-Perl > SourceCode::LineCounter::Perl

Download:
SourceCode-LineCounter-Perl-0.10_02.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.10_02   Source  

NAME ^

SourceCode::LineCounter::Perl - Count lines in Perl source code

SYNOPSIS ^

        use SourceCode::LineCounter::Perl;

        my $counter    = SourceCode::LineCounter::Perl->new( 
                );

        $counter->count;
        
        my $total_lines   = $counter->total;
        
        my $pod_lines     = $counter->documentation;
        
        my $code_lines    = $counter->code;
        
        my $comment_lines = $counter->comment;

        my $comment_lines = $counter->blank;

DESCRIPTION ^

This module counts the lines in Perl source code and tries to classify them as code lines, documentation lines, and blank lines.

Read a line

If it's a blank line, record it and move on to the next line

If it is the start of pod, mark that we are in pod, and count it as a pod line and move on

If we are in pod and the line is blank, record it as a blank line and a pod line, and move on.

If we are ending pod (with =cut, record it as a pod line and move on.

If we are in pod and it is not blank, record it as a pod line and move on.

If we are not in pod, guess if the line has a comment. If the line has a comment, record it.

Removing comments, see if there is anything left. If there is, record it as a code line.

Move on to the next line.

new
reset

Reset everything the object counted so you can use the same object with another file.

count( FILE )
total

Returns the total number of lines in the file

documentation

Returns the total number of Pod lines in the file, including and blank lines in Pod.

code

Returns the number of non-blank lines, whether documentation or code.

comment

The number of lines with comments. These are the things that start with #. That might be lines that are all comments or code lines that have comments.

blank

The number of blank lines. By default, these are lines that match the regex qr/^\s*$/. You can change this in new() by specifying the line_ending parameter.

TO DO ^

* Generalized LineCounter that can dispatch to language delegates.

SEE ALSO ^

SOURCE AVAILABILITY ^

This source is part of a SourceForge project which always has the latest sources in CVS, as well as all of the previous releases.

        http://sourceforge.net/projects/brian-d-foy/

If, for some reason, I disappear from the world, one of the other members of the project can shepherd this module appropriately.

AUTHOR ^

brian d foy, <bdfoy@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright (c) 2008, brian d foy, All Rights Reserved.

You may redistribute this under the same terms as Perl itself.