• ベストアンサー

Perlバージョン違いと use encoding;

Perl 5.6とPerl 5.8の両方を使っています。 use encoding 'utf8';を 5.6で使うとエラーになるので バージョンを調べて条件分岐を行おうとしていますが、 use はどこに書いても実行される?ので、エラーが回避できません。 何か良い方法はあるのでしょうか? use encoding 'utf'; $|=1; print "Version=$]\n"; use utf8; if($] >= 5.008001){ print "*** PASS ***\n"; use encoding 'utf8'; }

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

5.6と混在で使ってないので、実際には、試していないのですが、 BEGIN { unless(eval "use utf8; 1") { #use utf8 が使えない if($] >= 5.008001){ print "*** PASS ***\n"; eval "use encoding 'utf8'"; } } } というような感じでうまくいかないですかね。 だめなら、5.6用と5.8用別々にスクリプトを書いて、別々にrequireするというような方法ぐらいしか思いつきません。

関連するQ&A