[Perl] Импортировать ссылку с анонимной подпрограммой

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

[Perl] Импортировать ссылку с анонимной подпрограммой

Непрочитанное сообщение ProFTP » 2011-03-28 17:40:27

есть модуль

Код: Выделить всё

package Bar;

my $anon_anon = sub {return 666}
я хочу импортировать эту анонимныю подпрограмму с своего скрипта
сам данный модуль отлично сам инициализируется!


я еще давно знаю, что примерно это должно быть так:

Код: Выделить всё

use Bar;
my $pkg = 'Bar';
print Dumper ${${'main::'.$pkg.'::'}{anon_anon}}
полностью:

Код: Выделить всё

foreach (keys(%{'main::'.$pkg.'::'})) {
     ${${'main::'.$pkg.'::'}{$_}}=undef if defined ${${'main::'.$pkg.'::'}{$_}};
    @{${'main::'.$pkg.'::'}{$_}}=undef if defined @{${'main::'.$pkg.'::'}{$_}};
    %{${'main::'.$pkg.'::'}{$_}}=undef if defined %{${'main::'.$pkg.'::'}{$_}};
}
выводит undef
c print Dumper ${${'main::'.$pkg.'::'}{anon_anon}}

если написать так:

Код: Выделить всё

{ 
    no strict 'refs'; 
    foreach my $entry ( keys %main:: ) 
    { 
        print Dumper $entry; 
    } 
} 

то anon_anon я не вижу в выводе, может оно не выводиться по каким-то причинам??
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [Perl] Импортировать ссылку с анонимной подпрограммой

Непрочитанное сообщение ProFTP » 2011-03-28 22:37:52

по идее переменныю которые объявленные как my не могут быть экспортированные от туда...
я это действительно читал, но что-то так и не понял...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Гость
проходил мимо

Re: [Perl] Импортировать ссылку с анонимной подпрограммой

Непрочитанное сообщение Гость » 2011-03-30 22:22:29

Ну как бы ман говорит: "A my declares the listed variables to be local (lexically) to the enclosing block, file, or eval". Т.е. никак не вытащить my-переменные из модулей.