作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的代码:
my @e = ( '($i,$j, $k,$l)', '($i,$k, $j,$l)', '($i,$l, $j,$k)',
'($j,$k, $i,$l)', '($j,$l, $i,$k)', '($k,$l, $i,$j)'
);
#
# Assign various sets of values to $i,$j,$k,$l
#
foreach ( @e ) {
my ($a,$b, $c,$d) = eval $_;
#
# Do calculations based on the values of $a,$b,$c,$d
#
一切如我所愿。但是这样用eval感觉很笨拙。我觉得必须有更好的方法来遍历这四个值的六个排列。我尝试了各种方法,但没有发现任何有效的方法,所以我转而使用 eval。
最佳答案
我可能会选择潜艇。
my @e = (
sub { @_[ 0,1, 2,3 ] },
sub { @_[ 0,2, 1,3 ] },
sub { @_[ 0,3, 1,2 ] },
sub { @_[ 1,2, 0,3 ] },
sub { @_[ 1,3, 0,2 ] },
sub { @_[ 2,3, 0,1 ] },
);
...
for (@e) {
my ( $a,$b, $c,$d ) = $_->($i, $j, $k, $l);
...
}
如果值已经在一个数组中,上面的简化为:
my @e = (
[ 0,1, 2,3 ],
[ 0,2, 1,3 ],
[ 0,3, 1,2 ],
[ 1,2, 0,3 ],
[ 1,3, 0,2 ],
[ 2,3, 0,1 ],
);
...
for (@e) {
my ( $a,$b, $c,$d ) = @v[$_];
...
}
如果我们要处理更多值,我会考虑一种生成对突变的编程方法,但我想不出足够简单的方法值得。
关于perl - 我怎样才能避免在 Perl 中使用 "eval"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63671635/
我是一名优秀的程序员,十分优秀!