perl打印OUT并打印不显示相同的数据

时间:2015-05-23 23:25:05

标签: perl

嗨,printprint $fh显示不同结果的原因是什么?在这种情况下,.csv输出到屏幕是152行,但当它打印到$ fh时它停在第128行..

print  join (',', @col) . "\n";
print $fh join (',', @col) . "\n";

3 个答案:

答案 0 :(得分:0)

如果您正在运行此程序,并且在$ fh上运行一条尾巴,则会出现此现象,因为大多数系统默认情况下会缓冲输出。如果要关闭它,请关闭缓冲

select $fh;
$|=1;

答案 1 :(得分:-1)

为了绝对明确,我会写第二行如下:

print {$fh} join(',', @col), "\n";

然后看看这是否解决了这个问题。

答案 2 :(得分:-2)

在join命令之后你有逗号而不是连接。

可以想象,在第二种情况下,您获得的更准确地是加入(',',@ col)," \ n")。这在逻辑面前昙花一现,因为我们认为函数需要pareens

加入(',',"狗")," cat"看起来它应该产生两个条目清单("狗"," cat")

但是如果你加入了','," dog"," cat"你会期待一个字符串" dog,cat"

感谢您在加入后的额外空间,我想知道它是否在后一种模式而不是前者中看到它。尝试连接到连接而不是使用逗号并删除空格,看看是否有所作为。

相关问题