最近在用perl+mdbm+spread做東西。
php是用了很久了,python和ruby與用過(guò),經(jīng)典腳本語(yǔ)言就perl沒(méi)摸過(guò),現(xiàn)在在像小學(xué)生一樣抱著教科書(shū)啃。
發(fā)現(xiàn)perl果然有難度多了。別的東西沒(méi)讓我這么頻繁地犯錯(cuò)誤。
1.第一個(gè)常見(jiàn)的錯(cuò)誤是:向文件輸出內(nèi)容。標(biāo)準(zhǔn)語(yǔ)法是:
print STDERR "this is an apple.";
我一般都會(huì)寫(xiě)成
print STDERR,"this is an apple.";
總是多打一個(gè)逗號(hào)。老實(shí)說(shuō),一般我很少重復(fù)地犯錯(cuò)誤,但是這個(gè)地方我就是記不住。
2.第二個(gè)常見(jiàn)錯(cuò)誤是:經(jīng)常漏寫(xiě)Hash引用的箭頭。
本來(lái)應(yīng)該寫(xiě)成
print $hash->{$key};
我常常寫(xiě)成
print $hash{$key};
3.第三個(gè)常見(jiàn)錯(cuò)誤是:字符串比較:
用php時(shí)間長(zhǎng)了,老是用兩個(gè)等號(hào)來(lái)比較字符串。這是錯(cuò)的。正確寫(xiě)法是
if($var eq "hello") {
print "world";
}
我經(jīng)常寫(xiě)成:
if($var=="hello") {
print "world";
}
這會(huì)導(dǎo)致邏輯錯(cuò)誤,很難覺(jué)查。
4.第四個(gè)常見(jiàn)錯(cuò)誤:
if語(yǔ)句不帶括號(hào)(都是php帶壞的)
正確的寫(xiě)法是:
if($var)
{
print "yes";
}
我經(jīng)常寫(xiě)成
if($var)
print "yes";
5.還有一個(gè)錯(cuò)誤,不是從php中帶過(guò)來(lái)的,一般人估計(jì)不會(huì)犯:漏寫(xiě)分號(hào)。
更多信息請(qǐng)查看IT技術(shù)專欄