Crazy module end markers

先日Classic::Perlというモジュールで奇妙なモジュール終末値*1を見た。

# snip
__THE__ => __END__

=head1 NAME

この発想はなかった。=>演算子の左辺は裸のワードでよく、しかも演算子の右辺は省略できる*2ため、これは単にリテラルの"__THE__"の後、__END__で通常通りスクリプトの終わりを宣言しているのである。
面白いことを考える人がいるものだ。

*1:真ならなんでもよい

*2:つまり、foo(bar =>)という構文が許される。,演算子から類推すると理解できると思う。