我有一个包含两个值的数组,如果输入不在该数组中,则需要执行一些操作.
我尝试过
if ($a ne ('value1' || 'value2')
if (($a ne 'value1' ) || ($a ne 'value2' ))
Run Code Online (Sandbox Code Playgroud)
这两种方法都不起作用.有人可以帮忙吗?
你可以使用none来自的功能List::MoreUtils.
如果您的主题行确实有一个数组,那么您的代码将如下所示
use List::MoreUtils 'none';
if ( none { $_ eq $a } @array ) {
# Do stuff
}
Run Code Online (Sandbox Code Playgroud)
或者如果你真的有两个常数,那么你可以使用它
if ( none { $_ eq $a } 'value1', 'value2' ) {
# Do stuff
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我更愿意看到
if ( $a ne 'value1' and $a ne 'value2' ) {
# Do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果$ a与第一个元素不同,则它不在数组中,并且它与第二个元素不同.
if ($x ne 'value1' and $x ne 'value2') {
Run Code Online (Sandbox Code Playgroud)
对于任何大小的真实数组:
if (not grep $_ eq $x, @array) {
Run Code Online (Sandbox Code Playgroud)
(我用$x的不是$a,因为$a是特殊的-见perlvar.)
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |