2010-02-22 21 views

回答

16

Perl help

 
-n assume "while (<>) { ... }" loop around program 

這是一個純粹的文本操作,所以它給出了這樣的程序:

while (<>) { $_{$F[0]}+=$F[1]}print"$_ $_{$_}"for keys%_;{ } 

這是-n開關的濫用,因爲while循環早早關門由於原始程序中無法比擬的}。但-n交換機添加的關閉}仍然需要與某些內容匹配,這就是爲什麼在程序結束時需要額外增加{,即使它沒有任何操作。

換句話說,最後一個{的唯一原因就是沒有給出語法錯誤。

+2

可能會很高興提及-MO = Deparse – ysth 2010-02-23 04:08:06

+0

我們在_Effective Perl編程第二版中展示了幾個使用這個技巧的例子。 :) – 2010-02-23 20:55:00

+3

完成此操作的更好方法(在我看來)是使用'END {}'塊。 – 2010-02-23 20:56:47