Perl 最佳實踐 節選 06

2021-08-26 19:38:20 字數 1520 閱讀 4519

使用**塊

if,不要使用字尾

if。

例如,下面的就不好理解:

$sum+= $measurement if defined $measurement;

其實,它等於:

if(defined $measurement) {

$sum+= $measurement;

字尾

if要保留給流程控制語句。

不要使用

unless

、for

、while

、until

作為字尾。

絕對不要使用

unless

或until

避免

c風格的

for語句。

避免在迴圈內替陣列或雜湊標示索引。

迴圈內絕不要標示索引超過一次。

使用具名詞法變數作為

for迴圈迭代器。

總是以my

宣告for

迴圈迭代器。

從舊列表產生新列表時要用

map,不要用

for。

尋找列表中的值時要用

grep

和first

,不要用

for。

轉換列表時要用

for,不要用

map。

使用子程式呼叫把複雜列表轉換分離出來。

絕不要在列表函式中修改

$_。

避免級聯的

if。

級聯的相等性測試時優先使用**查詢。

產生值時使用**式的三元表示式。

不要使用do

…while迴圈。

盡可能多、盡可能早地拒絕迴圈迭代。

不要為了濃縮控制而扭曲迴圈結構。

使用for

和redo

,不要用不規則計數的

while

替每個會顯式離開的迴圈貼上標籤,

然後對每個

next

、last

、redo

都使用該標籤。

Perl 最佳實踐 節選 08

不要在 sort 中重新計算排序鍵。使用 reverse 逆轉列表。使用 scalar reverse 逆轉標量。使用 unpack 取出固定寬度的字段。使用 split 取出簡單的可變寬度的字段。使用 text csv xs 以取出複雜的可變寬度的字段。避免對字串使用 eval 考慮以 sort ...

Perl 最佳實踐 節選 10

不要使用未修飾字檔案控制代碼 bareword filehandle 使用間接檔案控制代碼。如果你要使用包檔案控制代碼,就先將其局域化。使用 io file 模組或三自變數形式的 open 對檔案做 open close print 時一定要檢查結果。顯式關閉檔案控制代碼,而且要盡可能快一點。使用 ...

Perl 最佳實踐 節選 12

正規表示式就是子程式。就是文字匹配子程式。一定要用 x標記。一定要用 m標記。以 a和 z作為字串邊界錨點 anchor 刪除前後空白 text s gxm 使用 z表示 字串末尾 不要用 z。perl提供 z標示符號的變形版本 z。但是,小寫 z是指 匹配字串末尾 而大寫 z是指 匹配可有可無的換...