Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Sort and summarize perlcritic output

by toolic (Bishop)
on Nov 28, 2012 at 03:00 UTC ( [id://1005951]=CUFP: print w/replies, xml ) Need Help??

This is how I run perlcritic. It sorts the output by severity, and it makes it easy to access the POD for a given policy (via perldoc with a simple copy'n'paste in your shell). It also runs lint checking using B::Lint.
=head1 Name B<pcsort> - Sort perlcritic 'brutal' output by severity =head1 Description Input is a Perl script or module. Prints to STDOUT. Example: pcsort foo.pl Also runs perl -MO=Lint. See also ~/.perlcriticrc file =cut use warnings FATAL => 'all'; use strict; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my $file = shift; my %hoa; my %pols; # These command line settings override same settings # in ~/.perlcriticrc file my @lines = qx(perlcritic --brutal --verbose 9 $file); for (@lines) { if (/ \[ ([\w:]+) \] .*? Severity : \s+ (\d) /x) { chomp; my $pol = $1; my $sev = $2; push @{ $hoa{$sev} }, $_; $pols{"perldoc Perl::Critic::Policy::$pol"}++; } } print Dumper(\%hoa); print 'TOTAL = ', scalar @lines, "\n"; print "$_\n" for sort keys %pols; my $lint = "perl -MO=Lint $file"; print "\n$lint\n"; print qx($lint 2>&1); # Make sure it all goes to STDOUT

Replies are listed 'Best First'.
Re: Sort and summarize perlcritic output
by Anonymous Monk on Nov 29, 2012 at 09:07 UTC
Re: Sort and summarize perlcritic output
by Tommy (Chaplain) on Jan 01, 2013 at 16:26 UTC

    This is really nice. Thank you.

    --
    Tommy
    $ perl -MMIME::Base64 -e 'print decode_base64 "YWNlQHRvbW15YnV0bGVyLm1lCg=="'

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://1005951]
Approved by GrandFather
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-24 22:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found