0
我想通過只使用if操作符在perl中創建一些類似bash的case語句。perl中的字符串變量的多重比較
my $var = shift @ARGV;
print "err\n" if (!$var || ($var ne "one") || ($var ne "two"));
問題是,'if'語句無法按預期工作。例如,如果我通過輸入'one'或'two'打印'err',但是,如果我用'eq'替換'ne'腳本,則工作正常。
Perl版本5.16.3 Linux的
你能說清楚預期的行爲是什麼嗎?除了「一」和「二」之外,是否允許所有真值?或者*只允許「一」或「二」嗎? – amon
只有當參數未定義,或者不是'one'或'two'時,代碼必須返回'err'。否則根本沒有輸出。 – Theodor