在 perl 中,针对多个值测试变量的最佳方法是什么?
像这样的东西(在伪代码中):
if x is in {'q','w','e','r','t'}
# do something
怎么样:
if (grep /^x$/, ('q', 'w','e','r','t')) {
# Do something
}
如果您要比较的值是标量(字符串或数字),则此方法有效。
对于字符串,有一个很好的速记:
if (grep /^x$/, qw(q w e r t y)) {
# Do something
}
如果您不喜欢正则表达式 ( /^x$/
),则有:
grep {$_ eq 'x'} qw(qwerty)
你可以$_
用来测试任何东西,而不仅仅是平等。
如果您想做的事情很简单(可以用一行来表示),那么就可以了:
do_something if grep /^x$/, qw(q w e r t y)