Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

perl::metrics::simple(3pm) [debian man page]

Perl::Metrics::Simple(3pm)				User Contributed Perl Documentation				Perl::Metrics::Simple(3pm)

NAME
Perl::Metrics::Simple - Count packages, subs, lines, etc. of many files. 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; VERSION
This is VERSION 0.12 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. USAGE
See the countperl script (included with this distribution) for a simple example of usage. 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. 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. 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/ LICENSE AND COPYRIGHT
Copyright (c) 2006-2009 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. SEE ALSO
The countperl script included with this distribution. PPI Perl::Critic Perl::Metrics http://en.wikipedia.org/wiki/Cyclomatic_complexity perl v5.10.1 2010-05-13 Perl::Metrics::Simple(3pm)

Check Out this Related Man Page

Tree::Simple::Visitor::LoadDirectoryTree(3pm)		User Contributed Perl Documentation	     Tree::Simple::Visitor::LoadDirectoryTree(3pm)

NAME
Tree::Simple::Visitor::LoadDirectoryTree - A Visitor for loading the contents of a directory into a Tree::Simple object SYNOPSIS
use Tree::Simple::Visitor::LoadDirectoryTree; # create a Tree::Simple object whose # node is path to a directory my $tree = Tree::Simple->new("./"); # create an instance of our visitor my $visitor = Tree::Simple::Visitor::LoadDirectoryTree->new(); # set the directory sorting style $visitor->setSortStyle($visitor->SORT_FILES_FIRST); # create node filter to filter # out certain files and directories $visitor->setNodeFilter(sub { my ($item) = @_; return 0 if $item =~ /CVS/; return 1; }); # pass the visitor to a Tree::Simple object $tree->accept($visitor); # the tree now mirrors the structure of the directory DESCRIPTION
This visitor can be used to load a directory tree into a Tree::Simple hierarchy. METHODS
new There are no arguments to the constructor the object will be in its default state. You can use the "setNodeFilter" and "setSortStyle" methods to customize its behavior. setNodeFilter ($filter_function) This method accepts a CODE reference as its $filter_function argument and throws an exception if it is not a code reference. This code reference is used to filter the tree nodes as they are created. The function is given the current directory or file being added to the tree, and it is expected to return either true(1) of false(0) to determine if that directory should be traversed or file added to the tree. setSortStyle ($sort_function) This method accepts a CODE reference as its $sort_function argument and throws an exception if it is not a code reference. This function is used to sort the individual levels of the directory tree right before it is added to the tree being built. The function is passed the the current path, followed by the two items being sorted. The reason for passing the path in is so that sorting operations can be performed on the entire path if desired. Two pre-built functions are supplied and described below. SORT_FILES_FIRST This sorting function will sort files before directories, so that files are sorted alphabetically first in the list followed by directories sorted alphabetically. Here is example of how that would look: Tree/ Simple.pm Simple/ Visitor.pm VisitorFactory.pm Visitor/ PathToRoot.pm SORT_DIRS_FIRST This sorting function will sort directories before files, so that directories are sorted alphabetically first in the list followed by files sorted alphabetically. Here is example of how that would look: Tree/ Simple/ Visitor/ PathToRoot.pm Visitor.pm VisitorFactory.pm Simple.pm visit ($tree) This is the method that is used by Tree::Simple's "accept" method. It can also be used on its own, it requires the $tree argument to be a Tree::Simple object (or derived from a Tree::Simple object), and will throw and exception otherwise. The node value of the $tree argument (gotten by calling "getNodeValue") is considered the root directory from which we begin our traversal. We use File::Spec to keep our paths cross-platform, but it is expected that you will feed in a valid path for your OS. If the path either does not exist, or is not a directory, then an exception is thrown. The $tree argument which is passed to "visit" must be a leaf node. This is because this Visitor will create all the sub-nodes for this tree. If the tree is not a leaf, an exception is thrown. We do not require the tree to be a root though, and this Visitor will not affect any nodes above the $tree argument. BUGS
None that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it. CODE COVERAGE
See the CODE COVERAGE section in Tree::Simple::VisitorFactory for more inforamtion. SEE ALSO
These Visitor classes are all subclasses of Tree::Simple::Visitor, which can be found in the Tree::Simple module, you should refer to that module for more information. AUTHOR
stevan little, <stevan@iinteractive.com> COPYRIGHT AND LICENSE
Copyright 2004, 2005 by Infinity Interactive, Inc. <http://www.iinteractive.com> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2005-07-14 Tree::Simple::Visitor::LoadDirectoryTree(3pm)
Man Page