logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Perl::Metrics::Simple - Count packages, subs, lines, etc. of many files.

Author

           Matisse Enzer
           CPAN ID: MATISSE
           Eigenstate Consulting, LLC
           matisse@eigenstate.nethttp://www.eigenstate.net/

Bugs And Limitations

       See: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple

Class Methods

new
       Takes no arguments and returns a new Perl::Metrics::Simple object.

   is_perl_file
       Takes a path and returns true if the target is a Perl file.

Description

Perl::Metrics::Simple provides just enough methods to run static analysis of one or many Perl files and
       obtain a few metrics: packages, subroutines, lines of code, and an approximation of cyclomatic (mccabe)
       complexity for the subroutines and the "main" portion of the code.

       Perl::Metrics::Simple is far simpler than Perl::Metrics.

       Installs a script called countperl.

Name

       Perl::Metrics::Simple - Count packages, subs, lines, etc. of many files.

Object Methods

analyze_files(@paths,@refs_to_file_contents)
       Takes an array of files and or directory paths, and/or SCALAR refs to file contents and returns an
       Perl::Metrics::Simple::Analysis object.

   find_files(@directories_and_files)
       Uses list_perl_files to find all the readable Perl files and returns a reference to a (possibly empty)
       list of paths.

   list_perl_files
       Takes a list of one or more paths and returns an alphabetically sorted list of only the perl files.  Uses
       is_perl_file so may throw an exception if a file is unreadable.

   is_perl_file($path)
       Takes a path to a file and returns true if the file appears to be a Perl file, otherwise returns false.

       If the file name does not match any of @Perl::Metrics::Simple::PERL_FILE_SUFFIXES then the file is opened
       for reading and the first line examined for a a Perl 'shebang' line. An exception is thrown if the file
       cannot be opened in this case.

   should_be_skipped($path)
       Returns true if the path should be skipped when looking for Perl files.  Currently skips  .svn, CVS, and
       _darcs directories.

See Also

       The countperl script included with this distribution.
       PPI
       Perl::Critic
       Perl::Metrics
       http://en.wikipedia.org/wiki/Cyclomatic_complexity

perl v5.36.0                                       2023-09-29                         Perl::Metrics::Simple(3pm)

Support

       Via CPAN:

   DisussionForumhttp://www.cpanforum.com/dist/Perl-Metrics-SimpleBugReportshttp://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple

Synopsis

         use Perl::Metrics::Simple;
         my $analyzer = Perl::Metrics::Simple->new;
         my $analysis = $analyzer->analyze_files(@paths, @refs_to_file_contents);
         $file_count    = $analysis->file_count;
         $package_count = $analysis->package_count;
         $sub_count     = $analysis->sub_count;
         $lines         = $analysis->lines;
         $main_stats    = $analysis->main_stats;
         $file_stats    = $analysis->file_stats;

Usage

       See the countperl script (included with this distribution) for a simple example of usage.

See Also