時,我對正則表達式變得友好,並用它們非常有效地完成了許多任務。與大多數perl一樣,TIMTOWTDI也掩蓋了我的判斷。有時我可以使用平等運算符或綁定運算符。但是,有沒有更適合於使用其中一種?最近,當我使用相等運算符來約束運算符
首先被簡化的情況
my $name = 'Chris';
if ($name eq 'Chris') { print 'What a great name!'; }
if ($name =~/^Chris$/) { print 'Yip sure is a great name; }
因此,在這種情況下,這是最簡化的,其中使用平等是較少的鍵入,然而,在該簡化的例子是在那裏的一個或另一個的任何益處。
在稍微更復雜的例子
這裏的結合操作是打字以下。不過,我不確定這個好處要麼可能超過另一個。
所以是一般規則,如果你匹配一個固定值的整個字符串使用相等運算符,並且如果你匹配一個字符串與一個模式例如任何5位數字符串/\d{5}/
然後使用綁定運算符。
在上面的例子中使用綁定運算符是不合適的。我明白,這些例子只是編寫而成,並不能反映真實的生活問題。然而,他們是我想要解釋我的問題的那些人。
可維護性是這裏的關鍵問題,IMO。在這種情況下,我會在兩種情況下都使用'eq'選項,因爲它更好地傳達了開發人員的意圖。雖然我很欣賞學術討論,但這裏存在過早優化的真正風險。 @ikegami有專注:只有在你目睹問題時才進行優化。不過,聰明的人在開發時相對較早地進行壓力測試。 –