Как получить доступ к хешу в основном пространстве имен из модуля - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть основной скрипт на Perl, который содержит

my $System = {
    Path =>
    {
        root => 'hello'
    }
}

print $System->{'Path'}->{'root'}; # prints 'hello'

Как получить доступ к переменной $System->{'Path'}->{'root'} из внешнего модуля?

Я знаю, что могу использовать пространство имен main:: для извлечения глобальных переменных, таких как $main::x, но следующее не работает $main::System->{'Path'}->{'root'}.

Я пробовал также разные синтаксисы, но я не могу его получить.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 05 сентября 2011

Переменные, объявленные с my, имеют только лексическую область видимости и не видны в пакете.

Объявите его с помощью our.

1 голос
/ 05 сентября 2011

«Как справиться со сферой»:

  http://perl.plover.com/FAQs/Namespaces.html
...