我正在學習用Perl編寫CGI應用程序 - Kevin Meltzer。布倫特米哈爾斯基
腳本的書大多與此開始:
#!"c:\strawberry\perl\bin\perl.exe" -wT
# sales.cgi
$|=1;
use strict;
use lib qw(.);
什麼是行$ | = 1;如何分隔它,例如。 $ | = 1;或$ | = 1; ? 爲什麼要使用嚴格;在$ | = 1之後; ?
感謝
我正在學習用Perl編寫CGI應用程序 - Kevin Meltzer。布倫特米哈爾斯基
腳本的書大多與此開始:
#!"c:\strawberry\perl\bin\perl.exe" -wT
# sales.cgi
$|=1;
use strict;
use lib qw(.);
什麼是行$ | = 1;如何分隔它,例如。 $ | = 1;或$ | = 1; ? 爲什麼要使用嚴格;在$ | = 1之後; ?
感謝
perlvar是你的朋友。它記錄了所有這些神祕的特殊變量。
$ OUTPUT_AUTOFLUSH(又名$ |):
如果設置爲非零,強制沖洗馬上和每一個書寫或打印當前選中的輸出通道後。默認值爲0(不管通道是否真的被系統緩衝; $ |只會告訴您是否在每次寫入後明確要求Perl刷新)。如果輸出到終端並且塊被緩衝,則STDOUT通常會被行緩衝。 設置此變量主要用於當您輸出到管道或套接字時,例如當您在rsh下運行Perl程序並且想要在輸出發生時看到輸出。 這對輸入緩衝沒有影響。請參閱getc。請參閱選擇如何選擇輸出通道。另見IO :: Handle。
助記符:當你想讓你的管道變熱時。
快樂編碼。
對於其他問題:
沒有理由認爲use strict;
來$|
後,除由程序員約定。 $|
等特殊變量不受這種嚴格的影響。間距也不重要 - 只要選擇你的慣例並保持一致。(我更喜歡空格。)
$| = 1;
迫使每次寫入或打印後沖洗,這樣它產生的,而不是被緩衝的輸出儘快出現。
請參閱perlvar文檔。
$|
是特殊變量的名稱。您不應在$
和|
之間引入空格。
無論你是否使用=
左右的空白對Perl都無所謂。我個人認爲使用空格會使代碼更具可讀性。
爲什麼use strict;
進來腳本$| = 1;
後,我不知道,但他們都的諸如此類的事情你擺正在頂部,你必須把它們放到一個訂單或另一個。我認爲這不重要。
在腳本中放置use
語句的位置並不重要,因爲它們都在編譯時得到評估。
$|
是autoflush的內置變量。我同意在這種情況下,它是不明確的。但是,一個單獨的$
在perl中不是一個有效的語句,所以通過消除的過程,我們可以說它意味着什麼。
use lib qw(.)
看起來像是一件愚蠢的事情,因爲「。」在默認情況下已經在@INC
。也許這是由於這本書很舊。這個語句告訴perl添加「。」到@INC
數組,這是perl的「路徑環境」,即它在哪裏尋找模塊等。
用Perl編寫CGI應用程序是一本很好的書,但非常非常非常(10年!)。最佳實踐和語言生態系統在那個時候已經發展了很多,確保你還閱讀了一些最新的材料,搜索「現代perl」或「學習perl」 – mirod 2011-06-10 08:07:20
@mirod只是爲[現代perl提供缺失的鏈接github](https://github.com/chromatic/modern_perl_book),因爲它一直處於活動狀態,並不時更新。 – mbx 2011-06-10 08:23:13
@mirod現在你讓我懷舊了.. 1995年,我使用了Macintosh的Netscape,它可以放在一張1,44mb的軟盤上。 ;) – TLP 2011-06-10 08:39:56