mac下perl怎么刷文件?
Posted
技术标签:
【中文标题】mac下perl怎么刷文件?【英文标题】:How flush file in perl under mac? 【发布时间】:2011-08-20 01:59:51 【问题描述】:我在远程 iMac 中有perl, v5.10.0 built for darwin-thread-multi-2level
。我想运行一些 perl 脚本,它打印出一些数据并在每行输出后刷新。
-
$file_handle->flush();
自动刷新 $file_handle;
我已经在文件顶部使用use IO::Handle;
尝试了这两个版本,但我得到的结果是Can't locate object method "autoflush" via package "FileHandle"
。
【问题讨论】:
你的意思是 $file_handle->autoflush(); ?或者,也许您应该尝试一下。只是为了笑,我会传递一个明确的参数 1 即使它应该在调用时默认为 true... 【参考方案1】:您从哪里获得$file_handle
?看起来它是 FileHandle
实例,而不是 IO::Handle
对象。
你可以试试
use FileHandle;
在脚本的顶部,而不是 IO::Handle
。或者,更改您的代码,使 $file_handle
不再是 FileHandle
实例。
PS:你真的不应该运行 5.10.0,它有很多错误。 5.10.1 或更新的版本要好得多。
【讨论】:
【参考方案2】:你确定“使用 IO::Handle;”没有错字吗?
在我看来该模块尚未加载。
【讨论】:
是的,因为我在 3 个不同的盒子中运行相同的代码。 Mac、Linux、Win 你能在你自动刷新之前把它放到程序中并给我输出吗?print map "$_ => $INC$_\n" keys %INC;
【参考方案3】:
使用文件句柄;解决了我的问题。我遇到了 Net::SCP::Expect 的问题。这发生在 CentOS 6.3 下。
我收到如下错误: - 无法通过包文件句柄定位对象方法自动刷新 - 无法通过包文件句柄定位对象方法阻塞
【讨论】:
以上是关于mac下perl怎么刷文件?的主要内容,如果未能解决你的问题,请参考以下文章
Perl 模块 Mac::PropertyList 用于 plist XML 文件