LINUX.ORG.RU

вопрос по Perl


0

0

Добрый день!
Не подскажите ли где можно почитать поподробнее про область видимости переменных. Или, если не сложно, объясните можно ли как-то сделать переменную из основного скрипта видимой в модулях? Никак не могу найти подобной информации.
Заранее спасибо!

Лучше всего классический источник - Programming Perl, есть на русском в сети.
Ищите по описанию функций: local, my, our; а также про пакеты, main в частности.
По вопросу, можно использовать глобальный пакет main:

#t.pm
package t;

sub t {
    print $main::t;
}

1;

#t.pl
use t;

$main::t = 10;

t::t();

ddt
()
Ответ на: комментарий от motofan

Либо можно так.

#
# MyGlobals.pm
#
package MyGlobals;

use base 'Exporter';
our @EXPORT = qw($global);

our $global;

#
# MyModule.pm
#
package MyModule;

use MyGlobals;

sub print_global
{
print $global;
}

#
# program.pl
#
use MyGlobals;
use MyModule;

$global = «I'm global\n»;

MyModule::print_global();

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.