我需要在几个 perl 模块中使用相同的文件句柄。这是我的示例 a.pl
#!/usr/bin/perl -w
our $OUT_FILE_HANDLE;
require b;
open($OUT_FILE_HANDLE, ">./a.log");
print $OUT_FILE_HANDLE "text1\n";
b::f($OUT_FILE_HANDLE); // this works
下午
package b;
sub f($) {
my $a = shift;
print $a "text2\n"; // get error here
}
f($main::OUT_FILE_HANDLE);
1;
我收到错误“不能使用未定义的值作为符号引用”
如果我直接在 b.pm 中使用句柄(不将其作为参数传递给函数)它工作正常
下午
package b;
sub f() {
print $main::OUT_FILE_HANDLE "text2\n"; // this works
}
f();
1;