/ / Як можна одне значення друку вкладених хешей у Perl? - перл

Як можна роздрукувати значення вкладеного хешу в Perl? - перл

$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 (крім нічого тривіального), вам потрібно буде дізнатися про це посилання. Якщо ви "знайомі з покажчиками, то ви знову" на півдорозі.

Найкращі ресурси - в офіційних документах: