Perl::Criticをちょっとだけ

まだまだ初心者な僕はコーディング規約的なことをしっかりしたい。
ので、はてな技術発表会日記で拝見しましたるPerl::CriticをCPANより落としてきて早速試す。
ちょっとだけ。

まず、以下のコードをtest.plとして作成。

#!/usr/bin/perl -w

use strict;
use lib qw(../myperl/lib);
use Readonly;

Readonly my $BIRTH_YEAR     => 1975;
Readonly my $BIRTH_MONTH    => 10;

MAIN :
{
    &main;
    exit;
}

sub main
{
    print $BIRTH_YEAR. "\n";
    print $BIRTH_MONTH. "\n";
}

__END__

引き続き、
以下のコードをcritique.plとして作成

#!/usr/bin/perl -w

use strict;
use lib qw(../myperl/lib);
use Perl::Critic;

MAIN :
{
    &main;
    exit;
}

sub main
{
    my $critic = Perl::Critic->new;
    my $source = './test.pl';
    print $critic->critique($source);
}

__END__

で、critique.plを実行すると・・・

Code before warnings are enabled at line 7, column 1. See page 431 of PBP.
Code not contained in explicit package at line 3, column 1. Violates encapsulation.
No 'VERSION' variable found at line 0, column 0. See page 404 of PBP.
Hard tabs used at line 7, column 24. See page 20 of PBP.
Hard tabs used at line 8, column 25. See page 20 of PBP.

って。
Perl::Criticによると


Most Policies are based on Damian Conway's book Perl Best Practices.
ってことなんで、
Perl Best Practices: Standards and Styles for Developing Maintainable Code

Perl Best Practices: Standards and Styles for Developing Maintainable Code

買うしかないですかねー。