Perl::...:Simple(3pm)

πŸ“¦
version 1.0.3 Β· 4 versions
, in debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– 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 🫑


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 πŸ”₯


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