cygwin perl子程序执行失序

时间:2016-02-16 05:12:37

标签: perl subroutine

我用子程序编写了这个简单的程序。 当我把它放在子程序中时,它会很奇怪。

#!/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

它永远不会打印出你的名字字符串。 它等待我输入一些标准输入,然后打印“你的名字字符串是什么”。它执行不正常。 很奇怪。

1 个答案:

答案 0 :(得分:2)

如果perl对它应该对IO做什么类型的缓冲感到困惑,可以创建这种类型的行为。尝试添加以下行。

$|++;

在您严格使用之后;&#39;在每个print语句后强制perl刷新缓冲区。