簡単な質問:スクリプトのユーザーに、"[1 .. 5]"
またはなどの任意の配列を入力できるようにしたい"[1, 2, 6, 9 .. 20]"
。現在、私eval
は与えられた文字列(明らかにあまり安全ではありません!)だけでperlcritic
、レベル5の警告を出します。
私の現在のコード:
my $arr = eval $patternData{"arr"};
unless ($arr) {
# fixes <arr> values like "(1 .. 5)"
$arr = undef;
@$arr = eval $patternData{"arr"};
}
編集:多くの人が尋ねているように:これは「より良い」ものです。私は、強力な(表現力の点で)ソリューションと単純な(デバッグ、解析、入力の書き込みの点で)ソリューションの両方を探しています。また、絶対に範囲をサポートする必要があります(100エントリをはるかに超える配列は簡単に入力する必要があります)
そして-いつものように-私は自分のバージョンを含めるのを忘れました。5.8は必須です。私はvSphereAPIを使用していますが、これには5.8が必要です(私は~~
とても恋しいです!)
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 50 registered patches, see perl -V for more detail)
Copyright 1987-2006, Larry Wall
Binary build 820 [274739] provided by ActiveState http://www.ActiveState.com
Built Jan 23 2007 15:57:46