アプリ版:「スタンプのみでお礼する」機能のリリースについて

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';
}

A 回答 (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するというような方法ぐらいしか思いつきません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!