【发布时间】:2013-08-01 10:32:42
【问题描述】:
我正在尝试通过仅使用 if 运算符在 perl 中创建某种类似 bash 的 case 语句。
my $var = shift @ARGV;
print "err\n" if (!$var || ($var ne "one") || ($var ne "two"));
问题是,'if' 语句不能按预期工作。例如,如果我将“one”或“two”作为输入传递,它会打印“err”,但是,如果我将“ne”与“eq”交换,则脚本可以正常工作。
perl 版本 5.16.3 linux
【问题讨论】:
-
您能否说明预期的行为是什么?除了
one和two是否允许所有真值?还是只允许one或two? -
只有在没有定义参数或者不是“一”或“二”时,代码才必须返回“错误”。否则根本没有输出。
标签: string perl variables comparison