这是Expect.pm的违规部分:
if (ref($file) ne 'CODE') { croak "Given logfile doesn't have a 'print' method" if not $fh->can("print"); $fh->autoflush(1); # so logfile is up to date}
那么,我尝试了这个示例代码:
use IO::Handle;open $fh,">>","file.out" or dIE "Can't open file";$fh->print("Hello,world");if ($fh->can("print")){ print "Yes\n";}else{ print "No\n";}
当我运行这个时,我得到两个(在我看来)冲突的项目.一行显示“Hello,world”和“No”输出的文件.在我看来,$fh-> can行应返回true.我错了吗?
解决方法 奇怪的是,看起来您需要创建一个真正的IO::File
对象才能使can方法起作用.尝试 use IO::file;my $fh = IO::file->new("file.out",">>") or dIE "Couldn't open file: $!";总结
以上是内存溢出为你收集整理的为什么我的Perl祝福文件句柄不能用`can(‘print’)`’返回true?全部内容,希望文章能够帮你解决为什么我的Perl祝福文件句柄不能用`can(‘print’)`’返回true?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)