是否可以将perl文件中定义的变量获取到pm文件?

时间:2011-01-12 06:59:32

标签: perl

test.pm

package test;
use Exporter;

our @ISA=qw(Exporter);
@EXPORT=qw(version);

sub show(){
 print $var;
}
sub version()
{
        $out=`uname`;
        return $out;
}

test.pl

#!/usr/bin/perl

BEGIN{
use lib qw(./Module);
}
use test;

our $var="what to print?";
$out=version();
print $out;

输出:

Linux的

print $var; //prints nothing, Can pass variable in both ways

我认为$var将是全球性的,也可以在那里看到。 如果我认为它仍然不可用 包测试中的$main::var

你能说出原因吗?

1 个答案:

答案 0 :(得分:3)

通常您将数据作为参数传递给模块的功能。

在test.pm中:

sub show {
    my $var = shift;
    print $var;
}

在test.pl中:

use test;

show('test123');

这会打印test123。