我用子程序编写了这个简单的程序。 当我把它放在子程序中时,它会很奇怪。
#!/usr/bin/perl -w
use strict ;
sub get_name {
print "what is your name ?\n" ;
my $name = <STDIN> ;
chomp($name) ;
print "Hello $name\n";
}
get_name ;
这是结果
$ ./name_print
casper
what is your name ?
Hello casper
它永远不会打印出你的名字字符串。 它等待我输入一些标准输入,然后打印“你的名字字符串是什么”。它执行不正常。 很奇怪。
答案 0 :(得分:2)
如果perl对它应该对IO做什么类型的缓冲感到困惑,可以创建这种类型的行为。尝试添加以下行。
$|++;
在您严格使用之后;&#39;在每个print语句后强制perl刷新缓冲区。