好了,我有类似你看到下面的东西,我的问题是,打印功能不打印,直到实际的命令完成,我希望它打印
一些子例程“拥有的MySQL ,安装:“,然后执行该命令,然后打印确定。我已经尝试使用睡眠并尝试清除$ ssh_d对象。任何意见赞赏。不要担心在这个特定的子变量,这个问题正在发生。多谢你们。Perl的不正常打印
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";
}
当你运行这个没有ssh cmd调用(我假设sshd指的是Net :: SSH :: Perl),它打印出来了吗?不知何故,我猜测cmd调用对stdout句柄做了些什么。 – Horus 2011-05-24 01:24:10
请参阅“忍受缓冲”http://perl.plover.com/FAQs/Buffering.html – tadmc 2011-05-24 03:56:33