Perl実行エラー
land.toのサーバで動かしていたプログラムですが、xreaに持ってきたら動かなくなりましたorzと原因を探るために。とりあえずデバッグモードで動かしてみると、
Wide character in print at
と表示される部分が……
どうやらUTF8フラグをつけたまま出力しようとしてるみたいです。
PerlIOレイヤを使用しているはずなんだが…
と思ってましたが、どうやら穴があったようで、ブラウザへの出力とファイルへの出力では記述の方法が違うようです。
具体的には
binmode STDOUT => ":utf8";
の記述はあったのですが
ファイルIOに関する
use open IO => ":utf8";
の記述が抜けていたために、ブラウザにはフラグ無し、ファイルにはフラグありで出力しようとしてエラーとなっていたみたい。
これが分かれば、あとは怖くないですね。