2014-01-07 68 views
-2

我有一個perl進程每天運行automaticaly,它需要大約20分鐘,芬蘭語和打印每個opertion標準輸出worht提及每個操作需要秒左右。寫入標準輸出

有時似乎stdout被阻塞,我需要點擊enter才能繼續運行。

有人會遇到這樣的問題/和建議如何處理這個問題?

我的代碼快照如下:

foreach (<>) { 
    chomp; 
    if (validate($_) == 0) { 
     print "$_ validated with Success\n"; 
    } 
    else { 
     print "$_ validated with failure\n"; 
    } 
} 
+1

我不禁看到代碼;最好是證明問題所需的最小量。 –

+1

在哪個操作系統? Linux(或者Windows)?可能需要衝洗(緩衝輸出)。或者終端窗口被阻止。 –

+0

在Windows操作系統 – user3019319

回答

1

正如比爾·魯珀特寫道,你需要爲了讓輸入的每一行被讀取之後,要執行的print語句中使用while (<>)而不是foreach (<>)

正如Joop Eggen寫道的,您需要確保您的標準輸出不是以塊的形式寫入,以確保在發出print語句後立即顯示每行輸出。這可以通過設置$|變量來完成。