時使用OR(一般邏輯運算符)時遇到問題基本上我想獲得用戶輸入並決定要做什麼,並且即使對於不同的用戶輸入有時也需要相同的結果。示例代碼:Perl Switch語句:在給定條件/當條件爲
given ($command) {
when ('a' || 'add') {add}
when ('s' || 'subtract') {subtract}
when ('m' || 'multiply') {multiply}
when ('d' || 'divide') {divide}
default { print "try again, usage: add, subtract, multiply, divide (a, s, m, d)\n" }
現在麻煩的是,它只有在我在or語句的開頭鍵入單個字母命令時才起作用。如果我在提示中鍵入類似「添加」的內容,我會收到默認消息,告訴我再試一次。
我可以爲這些做單獨的情況,但它只是與單個字母相同,這只是多餘的。
非常感謝答案,你說得對,我沒有意識到這是一個數組:) – 2012-07-22 08:18:51
@ AJ_507:我已經編輯我的答案顯示另一個做法。 – 2012-07-22 08:23:37
有一個特殊情況(對於'when',而不是smartmatch)記錄,但AFAICT似乎不起作用。這是http://perldoc.perl.org/perlsyn.html#Experimental-Details-on-given-and-時的情況10 – ysth 2012-07-22 09:31:37