filehandler什么问题

filehandler什么问题

这是什么问题,初学搞不定

1.pl
===================
#!/usr/bin/perl
open $fh, ">test.txt";


lala::subroutine($fh);
~
lala.pm
================
package lala;

sub subroutine{
    my $fa = shift;
    $fa->print( "Hello, dssdddd!\n");
}

1;
==============
windows 下没问题,linux 下开debug没问题,直接运行不行,
./1.pl
Can't locate object method "print" via package "IO::Handle" at lala.pm line


    print {$fa} "Hello, dssdddd!\n";
没问题,不过我用 expect,模块里使用的就是上面有问题的方式,所以。。。。
use IO::Handle;
没错了,
可以解释为什么windows,和debug环境可以的原因吗
改造:
好像不是一样的问题


sub subroutine{
    my $fa = shift;
    $fa->print("Hello, dssdddd!\n");

   my $console = new Expect;
  $console->log_file($fa);
}

是不行:Given logfile doesn't have a 'print' method at lala.pm line
$fa->print("Hello, dssdddd!\n");   # 有效
my $lala = $fa->can("print");
print $lala;                                     # print 的为空 ,why?