Data::Dumper вернул хеш с косой чертой
Итак, у меня есть строка кода на Perl, которая выглядит так:
my $stored_value = $foo->some_function($argument);
Когда я делаю самосвал на нем:
warn Dumper $stored_value
Я получаю это в результате.
$VAR1 = \{
'foo' => 'abc',
'bar' => '123'
};
Теперь я видел такие результаты:
warn Dumper $another_hash;
$VAR1 = {
'foo' => 'bar',
'baz' => 'quux'
};
И если бы я хотел сказать, foo value, я бы напечатал что-то вроде этого:
warn Dumper $another_hash->{'foo'};
Чтобы получить это в результате.
$VAR1 = 'bar';
Изначально я ничего не мог найти в своих поисках в Google, но сейчас я сделал небольшой тестовый сценарий, чтобы поиграть с тем, что увидел, и выяснил это
#!/usr/bin/perl
#
use strict;
use warnings;
use Data::Dumper;
sub test {
my $brother = {'Ted'};
$brother->{'Ted'} = 'brother';
return \$brother;
}
my $blah= test();
my $blah = ${$blah};
print Dumper $blah->{'Ted'};
print "\n";
Вот мои результаты:
$VAR1 = 'brother';
Я хотел поделиться тем, что нашел, если кто-то столкнулся с тем же, но что именно я увидел?
Я видел, как это сделать, в http://perldoc.perl.org/perlref.html, но я просто хотел кое-что прояснить.
1 ответ
Я не уверен, что ваш вопрос, но ваш вывод показывает, что $stored_value
является ссылкой на скаляр, который, в свою очередь, является ссылкой на хеш.
Редко полезно сохранять ссылки на скаляры, так что это может указывать на ошибку.
Эта короткая программа показывает, как можно было создать значение
use strict;
use warnings;
use Data::Dumper;
my $href = {
foo => 'abc',
bar => '123',
};
my $href_ref = \$href;
print Dumper $href_ref;
выход
$VAR1 = \{
'bar' => '123',
'foo' => 'abc'
};
И, кстати, это обычно более полезно для использования Data::Dump
в предпочтении Data::Dumper