20:27:00mod_perl1の場合は__END__と__DATA__の各トークンは、対象スクリプト中に存在すらしていてはいけません。アクセスされてApache::Registryのコンパイルが走った時点でエラーになります。内にあるかのようなコードを生成して文字列evalを行うからです。Apache::Registryのドキュメントには、スクリプトには__END__と__DATA__を含めてはいけない、と書かれています。Apache::PerlRunも同様です。mod_perl2の場合も高速化の手法は同様ですが、mod_perl1のようにエラーになることを回避するために、__END__と__DATA__の各トークンは、対象スクリプトのコンパイル時に取り除かれるようになりました。Registryファミリーの親クラスであるModPerl::RegistryCookerのstrip_end_data_segmentメソッドがそれを行っています。エラーにはなりませんが、コンパイルされたスクリプト内で普通にDATAファイルハンドルからデータを読み出そうとしても徒労に終わります。20:49:00mod_perl1だとそんな動作なんですね。2系しか使ったことがないので知りませんでした。後で対応しようと思ってましたが、それだと無理そうですね。Mongers北海道でのPerlユーザの交流や勉強会の開催を目的に2010/04/09に開始した有志による技術コミュニティです。