Perl::...:Simple(3pm)
π NAME π
Perl::Metrics::Simple β it counts packages, subs, lines, etc. of many files. no cap, that's the whole job description bestie π
β¨ 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;
π¦ DESCRIPTION π¦
okay so Perl::Metrics::Simple gives you just enough methods to run static analysis on one Perl file or a whole lil pile of them, and pull out a few metrics: packages, subroutines, lines of code, and an approximation of cyclomatic (mccabe) complexity for the subroutines and for the "main" portion of the code. π
and like. Perl::Metrics::Simple is far simpler than Perl::Metrics. that's the vibe. it's the low-key version, the one that doesn't do the most. π«Ά
it also installs a script called countperl. iconic behavior honestly π
πΈ USAGE πΈ
go peek at the countperl script (it ships with this distribution, bestie) for a simple example of how to use it. that's your starter pack. β¨
π CLASS METHODS π
π« new
Takes no arguments and returns a shiny new Perl::Metrics::Simple object. that's it. that's the whole method. so simple. we love her. π
π« is_perl_file
Takes a path and returns true if the target is a Perl file. vibe check passed β
π 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 a 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, and if it's empty we don't talk about it π) 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 heads up β it 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 doesn't match any of @Perl::Metrics::Simple::PERL_FILE_SUFFIXES, then the file gets opened for reading and the first line gets examined for a a Perl 'shebang' line. and if the file can't be opened in that case? an exception is thrown. not me getting caught slipping π
π should_be_skipped($path)
Returns true if the path should be skipped when looking for Perl files. Currently skips .svn, CVS, and _darcs directories. we are not going in there. boundaries. π
π BUGS AND LIMITATIONS π
See: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple
π«Ά SUPPORT π«Ά
Via CPAN:
π Disussion Forum
http://www.cpanforum.com/dist/Perl-Metrics-Simple
π Bug Reports
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple
β AUTHOR β
Matisse Enzer
CPAN ID: MATISSE
Eigenstate Consulting, LLC
matisse@eigenstate.net
http://www.eigenstate.net/
shoutout to Matisse, the main character who wrote this π«‘
π LICENSE AND COPYRIGHT π
Copyright (c) 2006-2021 by Eigenstate Consulting, LLC.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
fr fr, it's free software, go wild, just keep the same terms as Perl itself. π
π₯ SEE ALSO π₯
- The
countperlscript included with this distribution. PPIPerl::CriticPerl::Metrics- http://en.wikipedia.org/wiki/Cyclomatic_complexity
and that's the whole page bestie!! this one came from perl v5.36.0, dated 2023-09-29, and yes the manual name up top is Perl::...:Simple(3pm) because the terminal only had so much room and chose violence. anyway. ily. go count some subs πβ¨π
π¦ where this page comes from
- debian trixie: libperl-metrics-simple-perl 1.0.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libperl-metrics-simple-perl 1.0.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libperl-metrics-simple-perl 1.0.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libperl-metrics-simple-perl 1.0.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms