#!/usr/bin/perl my $err = 0; foreach my $fn (@ARGV) { open my $fh, "<", $fn or die "$!: $fn"; my $noblank = 1; my $imports = undef; while(defined ($_ = <$fh>)) { /\s+\n$/ and $err++, print "$fn:$.: Trailing whitespace\n"; $err++, print "$fn:$.: Extra blank line\n" if !/\S/ && $noblank; $noblank = scalar !/\S/; if (defined $imports) { if (!/^import /) { $err++, print "$fn:$.: nonsorted imports\n" if join('', sort @$imports) ne join('', @$imports); $imports = undef; } } push @$imports, $_ if /^import /; } $err++, print "$fn:$. Extra blank line\n" if $noblank; close $fh; } exit 1 if $err;