Я пытаюсь eval
выводить Dumper
для довольно простого хеш-кода, где два ключа имеют одинаковое значение (ссылка на другой ha sh):
#!/usr/bin/env perl
use strict; use warnings;
use Data::Dumper;
my $foo = { data => 1 };
my $boo = {
x => $foo,
y => $foo,
};
my $VAR1;
my $bar = eval( Dumper( $boo ) );
print Dumper( $boo );
print Dumper( $bar );
Я ожидаю $boo
и $bar
, чтобы иметь ту же структуру, но eval, похоже, не решает внутреннюю ссылку $VAR1->{'x'}
правильно, я надеялся, что последние 2 строки напечатают одну и ту же строку:
$VAR1 = {
'x' => {
'data' => 1
},
'y' => $VAR1->{'x'}
};
Но вторая имеет x
или y
undefined (в зависимости от того, что было указано в буквальной форме):
$VAR1 = {
'x' => {
'data' => 1
},
'y' => undef
};
Я пробовал простое использование часть на do c, и это дало прекрасные результаты с гораздо более сложной структурой (no strict
, пока), но я могу 'выполнить sh это с моими данными с двумя ссылками на тот же ha sh.
Что мне здесь не хватает?