/ / Ako sa dá tlačiť hodnoty vnorených hašov v Perle? - perl

Ako možno v Perl tlačiť hodnoty vnorených hash? - perl

$dict{"one"}=1;
print %dict;

Toto bude tlačiť

one1

do terminálu. Ale čo keď má môj kód slovník hash v a slovník hash takto:

my %dict;
$dict{"1"}{"1"}=2;

print %dict;

Výsledkom je výstup:

1HASH(0xb1db78)

Aj keď zmením posledný riadok na

print $dict{"1"};

Výstup je:

HASH (0x13ccb78)

Ako môžem získať obsah slovník hash namiesto referenčného umiestnenia?

odpovede:

3 pre odpoveď č. 1

%dict["one"]=1; << je to nesprávne

to by malo byť $dict{"one"}=1;

Mali by ste mať niečo podobné. Výstraha: toto je netestovaný kód, ale dostanete bod, ktorý sa snažím povedať:

#!/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 pre odpoveď č. 2

Ak chcete celú štruktúru, použite jadro Data::Dumper modul.

use strict;
use warnings;

use Data::Dumper;

my %hash;
$hash{1}{1} = 2;

print Dumper( %hash );

výstupy:

$VAR1 = {
"1" => {
"1" => 2
}
};

Ak chcete pracovať s vnorenými štruktúrami v Perle (mimo čokoľvek triviálne), musíte sa o nich dozvedieť referencie, Ak ste sa zoznámili s ukazovateľmi, potom sa tam nachádzate.

Najlepšie zdroje sú v oficiálnych dokumentoch: