这个人有我。
这有效:
print "Processing Feed\n";
while ( my @p = $mainex->fetchrow_array ) {
my $iis = "$pcount";
print "$iis\n";
# ... Do Other Stuff Here
$pcount++;
}
给出了:
Processing Feed
1
2
3
4
5
6
7
8
9
10
...
这不起作用(从第4行删除\ n):
print "Processing Feed\n";
while ( my @p = $mainex->fetchrow_array ) {
my $iis = "$pcount";
print "$iis";
# ... Do Other Stuff Here
$pcount++;
}
简单地说:
Processing Feed
我正在尝试构建一个计数器,该计数器将使用以下内容输出记录的计数:
while( Something ){
print "\b\b\b\b\b\b\b\b\b\b\b";
print "$count";
$count++;
# Do stuff here
}
为什么在第二个例子中没有\ n时为什么没有打印到屏幕?我以前做了很多次,无法弄清楚它为什么不起作用。
答案 0 :(得分:6)
打印结束时的换行触发stdout的刷新,打印到屏幕上。如果您将$|++
添加到perl脚本的顶部,它将为stdout打开autoflushing,您将看到您的数字。
答案 1 :(得分:4)
缓冲I / O.
当有换行符或缓冲区已满时(可能是512字节或4096字节或其他相当大的数字),数据会刷新到屏幕。