一个简短的问题:我想让我的脚本的用户可以输入任意数组,例如"[1 .. 5]"
or "[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 是必须的,我正在使用需要 5.8 的 vSphere API(我~~
非常想念!)
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