ツンperlを実装したわよ!

べっ、別にid:naoyaのためにやってるわけじゃないんだからねっ! Hackerthonに来るの楽しみにしてたのに!

Dan the Spiffy

% perl -MTsun::Dere t/test.pl
ちょっと!「t/test.pl」の5行目の「$hello」には明示的なパッケージ名が必要なの!1度言ってもわからないの!?
ちょっと!「t/test.pl」の6行目の「$hello」には明示的なパッケージ名が必要なの!2度言ってもわからないの!?
ふう...「t/test.pl」はコンパイルエラーになるから実行しないでおいたわ。
べっ、別にあんたのためにやってるわけじゃないんだからねっ!
% cat Tsun/Dere.pm 
package Tsun::Dere;
use 5.008008;
use strict;
use warnings;
use Carp;
use utf8;

use Module::Compile -base;

sub pmc_compile {
    my ($class, $source) = @_;
    my $filename = $0;
    $source =~ s/no\s+$class\s*.*;\n//o;
    eval $source;
    if ($@){
        my $count = 1;
        binmode STDERR, ':utf8';
        for (split /\n/, $@){
            s{Global symbol "([^\"]+)" requires explicit package name at (.*?) line (\d+).}{
                qq(ちょっと!「) .
                $filename .
                qq(」の) .
                $3 .
                qq(行目の「) .
                qq($1」には明示的なパッケージ名が必要なの!) .
                $count++ .
                qq(度言ってもわからないの!?);
            }emsi;
            print STDERR $_, "\n";
        }
        print STDERR 
            "ふう...「",
            $filename,
            "」はコンパイルエラーになるから実行しないでおいたわ。", "\n",
            "べっ、別にあんたのためにやってるわけじゃないんだからねっ!",
            "\n";
    };
    return q();
}

1;
__END__