$dict{"one"}=1;
print %dict;
Це буде друкувати
один1
до терміналу. Але що робити, якщо мій код має словник хеш в а словник хеш так:
my %dict;
$dict{"1"}{"1"}=2;
print %dict;
Це дає результат:
1HASH(0xb1db78)
Навіть коли я змінюю останній рядок на
print $dict{"1"};
Вихід:
HASH (0x13ccb78)
Як я можу отримати вміст словник хеш замість опорного розташування?
Відповіді:
3 для відповіді № 1%dict["one"]=1;
<< це неправильно
вона повинна бути $dict{"one"}=1;
Ви повинні мати щось подібне нижче. Увага: це неперевірений код, але ви розумієте, що я намагаюся сказати:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my %dict;
$dict{"1"}{"1"}=2;
$dict{"2"}{"2"}=3;
#print Dumper(%dict);
foreach my $keys ( keys %dict )
{
print "$keys : ";
foreach my $keys2 ( keys %{ $dict{keys} } )
{
print "$keys2 = $dict{keys}{$keys2} n" ;
}
print "n";
}
7 для відповіді № 2
Якщо ви хочете всю структуру, використовуйте серцевину Data::Dumper
модуль
use strict;
use warnings;
use Data::Dumper;
my %hash;
$hash{1}{1} = 2;
print Dumper( %hash );
Виходи:
$VAR1 = {
"1" => {
"1" => 2
}
};
Якщо ви хочете працювати з вкладеними структурами в Perl (крім нічого тривіального), вам потрібно буде дізнатися про це посилання. Якщо ви "знайомі з покажчиками, то ви знову" на півдорозі.
Найкращі ресурси - в офіційних документах: