Wide character in die at
結論から言ってしまうと、この警告メッセージは「Wide character in print at」のSTDERR(標準エラー)版なので、binmode(STDERR, ":utf8");を書いておくことで解決できるようになります。
「Wide character in print at」の問題は、出力しようとしている文字にutf8フラグなるものがくっついていると起こるみたいで、binmode(STDOUT, ":utf8");を書くことで問題を回避できます。これは『標準出力の文字エンコードはutf8ですよ』ということを指定するための文言っぽいです。
die "エラーが発生したので終了します: $!";
のようなコードをutf8でエンコードされているplファイルに書いて、その行が実行されると「Wide character in die at」が現れることがあります。
print は文字列をSTDOUTに出力し、dieは文字列をSTDERRに出力するためbinmode(STDOUT, ":utf8");と書いておいただけでは警告メッセージが出てしまいます。なので、ソースコードをutf8で書いた場合は、STDOUTと同様にSTDERRのbinmodeも指定しておきましょう。
# エンコードの設定 use utf8; binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8");
参考Webページ