Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-08 Пенетрантность KES
>Мне-то кажется, что именно этот метод и есть правильный, но навязывать ничего >не хочу ))) Получилось сделать локализацию вручную с помощью модуля Hook::Scope. Но дополнительно выкинул из него код 'use optimizer 'sub-detect' => \' потому, что модуль уж совсем старый и некорректно работает с

[Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-06 Пенетрантность KES
День добрый. Локализация $DB::single работает без проблем, но если брать ссылку на неё, то возникают проблемы: The localization of $DB::single works fine, but the reference to it does not work: { $DB::single = 7; my $x = \$DB::single; print "Before: ".

Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-06 Пенетрантность KES
>И уж совсем не понятно, что же вы пытались сделать, что в итоге такой кусок кода получился ))) Хотел положить ссылки на $DB::single в массив, чтобы можно было управлять значениями, в которые будет восстановлено $DB::single при выходе из блока. Это удобно, когда мы хотим выйти из текущей

Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-06 Пенетрантность Vladimir Timofeev
А какая версия Perl у вас? А то вот я запускаю ваш пример в виде такого скрипта: === test.pl #!perl print "Case 1. DB special var\n"; { $DB::single = 7; my $x = \$DB::single; print "Before: ". \$DB::single ." <<$x $$x\n"; local $DB::single = 0; print "After: ". \$DB::single ."

Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-06 Пенетрантность Vladimir Timofeev
2016-01-07 6:19 GMT+03:00 Eugen Konkov : > Спасибо! Очень много интересной информации вы мне дали. Пойду изучать... > Не могли бы вы мне подсказать файл, в котором перл генерирует обком для goto? Ну это просто. Все OP в файлах op*.c, так что ack 'pp_goto' op*.c и получаем...

Re: [Moscow.pm] Fwd: Почему меняется старое значение, хотя переменная локализирована?

2016-01-06 Пенетрантность Vladimir Timofeev
Ну вот это уже интереснее ) Так вот: 1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как надо (в вашем случае это был $DB::x, об этом чуть ниже). $ perl -MDevel::Peek -e'Dump($DB::single)' SV = NULL(0x0) at 0x7f882b82dc60 REFCNT = 1 FLAGS = () 2. С подключенным