此代碼未能查出任何它似乎識別鍵:匹配正則表達式細微差別的Perl會引起頭疼嗎?
if($key =~ /upsf|free|ground|sla|pickup|usps/)
所以我把它改爲:
if($key eq 'upsf' || $key eq 'free'
|| $key eq 'ground' || $key eq 'sla'
|| $key eq 'pickup' || $key eq 'usps')
他們看起來對我來說,它們在功能上等同
,所以我試圖找出第一個失敗的原因。它是Windows 7下XAMPP下的Perl,但它也是Linux下的Apache2下的Perl。
這打印出「shelf it」 - 無論是在Windows和Linux上。
$key = 'upsf';
if($key =~ /^(upsf|free|ground|sla|pickup|usps)$/) {
print 'ship it';
} else {
print 'shelf it';
}
什麼文字你是匹配? '$ key'的價值是什麼?你的第二行實際上等於'/ ^(upsf | free | ground | sla | pickup | usps $] /',而不是'/ upsf | free | ground | sla | pickup | usps /'。 – simbabque 2012-07-26 17:44:52
它應該工作,也許你錯過了別的東西? – perreal 2012-07-26 17:44:53
你的問題是沒有意義的。在給出適當的輸入的情況下,提交的代碼應該可以工作給我們一個簡短的,自包含的和正確的例子(包括輸入)來展示你的問題。我想你會發現,在這種情況下,你的問題是與你的意見。 – TLP 2012-07-26 17:52:38