Можно ли получить переменную, определенную в файле perl, в файл pm? - PullRequest
0 голосов
/ 12 января 2011

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 Ответ

3 голосов
/ 12 января 2011

Обычно вы передаете данные в качестве параметра функции модуля.

в test.pm:

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

в test.pl:

use test;

show('test123');

это напечатало бы test123.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...