2010-03-12 37 views

回答

17

您需要爲標準輸出設置自動刷新。例如:

use IO::Handle; 
STDOUT->autoflush(1); 
foreach (1..20) { 
    print '.'; 
    sleep(1); 
} 
+2

@Hans請不要鏈接到未經授權的書籍副本 – 2010-03-12 17:16:28

+0

請參閱http://oreilly.com/catalog/9780596003135和http://oreilly.com/catalog/9780596003135。 – 2010-03-12 17:21:14

+0

對不起,它剛剛彈出時我搜索了網絡,現在刪除了鏈接。 – 2010-03-12 17:49:13

7

設置$|=1開始打印之前。例如。

perl -e ' $|=1; foreach (1..10) { print "$_ "; sleep(1); }' 
+1

+1,因爲有人標記了一個工作解決方案。 – 2010-03-12 17:09:24

+0

@ar,'STDOUT-> autoflush(1)'與'$ | = 1'是相同的東西,除了'$ | = 1',是全局的並且'STDOUT-> autoflush(1)'特定於一個句柄。 – 2010-03-12 17:18:51

+0

除非你必須做'使用IO :: Handle'。不是'IO :: Handle'並不是一個標準的模塊,但是......是的。 :(' – 2010-03-12 17:37:23

0

什麼工作對我來說是放線

STDOUT->autoflush(1); 

我行

print "."; 

我現有的循環中之前。沒有使用睡眠,因爲害怕更慢地放慢速度。

相關問題