>Мне-то кажется, что именно этот метод и есть правильный, но навязывать ничего
>не хочу )))
Получилось сделать локализацию вручную с помощью модуля Hook::Scope. Но
дополнительно выкинул из него код 'use optimizer 'sub-detect' => \'
потому, что модуль уж совсем старый и некорректно работает с
День добрый.
Локализация $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: ".
>И уж совсем не понятно, что же вы пытались
сделать, что в итоге такой кусок кода получился )))
Хотел положить ссылки на $DB::single в массив, чтобы можно было управлять
значениями, в которые будет восстановлено $DB::single при выходе из блока. Это
удобно, когда мы хотим выйти из текущей
А какая версия 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 ."
2016-01-07 6:19 GMT+03:00 Eugen Konkov :
> Спасибо! Очень много интересной информации вы мне дали. Пойду изучать...
> Не могли бы вы мне подсказать файл, в котором перл генерирует обком для goto?
Ну это просто. Все OP в файлах op*.c, так что ack 'pp_goto' op*.c и получаем...
Ну вот это уже интереснее )
Так вот:
1. Без дебаггера, $DB::single обычный скаляр, с ним всё происходит как
надо (в вашем случае это был $DB::x, об этом чуть ниже).
$ perl -MDevel::Peek -e'Dump($DB::single)'
SV = NULL(0x0) at 0x7f882b82dc60
REFCNT = 1
FLAGS = ()
2. С подключенным