Perl コンパイラがコードを解釈する段階で、「__END__」もしくは「__DATA__」という行(トークン)を見つけると、それ以降からファイルの終わりまでコードとして解釈されなくなります。コメントのように、何を書いてもコードとしては実行されませんが、これらのテキストは「DATA」という特殊なファイルハンドルで参照する事ができます。 特殊なファイルハンドルといっても、普通のファイルハンドルと同じように行入力演算子(<>)などで読み込む事ができるので、コード中に簡単なデータを埋め込みたい時に便利です。 「__END__」と書いた場合は、どんなパッケージでも常に main パッケージの DATA ファイルハンドル(main::DATA)に関連付けられます。「__DATA__」と書いた場合は、現在のパッケージの DATA ファイルハンドル(__PACKAGE__::DATA)に関連付けられます