#!/usr/bin/perl -w use strict; use FindBin qw/$RealBin/; use Cwd qw/abs_path/; use Perl::Critic; use File::Next; use File::Spec; my $path = abs_path( File::Spec->catdir( $RealBin, '..', '..' ) ); my $files = File::Next::files($path); my $critic = Perl::Critic->new(); open( my $fh, '>', File::Spec->catfile( $RealBin, 'critic.txt' ) ); flock( $fh, 2 ); while ( defined( my $file = $files->() ) ) { next if ( $file !~ /\.(p[ml]|t)$/ ); # only .pm .pl .t next if ( $file =~ /Schema\.pm$/ ); # skip this file next if ( $file =~ /(\/|\\)Schema(\/|\\)/ ) ; # skip Schema dir and Schema.pm next if ( $file =~ /Version\.pm/ ); # skip Foorum/Version.pm print "$file\n"; my @violations = $critic->critique($file); $file =~ s/\\/\//isg; # for Win32 $file =~ s/^$path//isg; unless ( scalar @violations ) { print $fh "$file source OK\n"; } else { foreach (@violations) { print $fh "$file: $_"; } } } close($fh); 1;