Perl无法正常打印

| 好的,所以我有一些子例程,与您在下面看到的类似,我的问题是在实际命令完成之前,打印功能不会打印出来,我希望它可以打印 \“具有MySQL,正在安装:\”,然后执行命令,然后打印OK。我已经尝试使用sleep并尝试清除$ ssh_d对象。任何建议表示赞赏。不必担心此特定子目录中的变量,问题无处不在。谢谢你们。
if ($MySQL)
{
    print \"Has MySQL, Installing: \";
    $mysqlCmd = \"/path/to/script/mysql-install.pl $person > /dev/null 2>&1\";
    $ssh_d->cmd(\"$mysqlCmd\");
    print \"OK\\n\";
}
    
已邀请:
STDOUT通常是行缓冲的,因此在打印换行符之前,您不会看到输出。您可以在打印前设置
$|
以强制打印输出。 要在每次打印后打开自动冲洗功能,请将
$|
设置为1:
$| = 1;
print \"Enter a number between 3 and 5: \";
chomp( my $answer = <STDIN> );
(请注意,$ |实际上不是单个值,将为每个文件句柄单独跟踪它。设置它时,它会影响当前所选文件句柄的设置(请参见
select
)。     
  谢谢!您能给我看看如何使用$ |的例子吗?我不熟悉,这个地方永远不会失败– 这样可以吗?
$| = 1;
print \"This is now unbuffered printing. \"
sleep 3;
print \"You no longer have to wait for the NL character. \";
sleep 3;
print \"\\n\";
    

要回复问题请先登录注册