$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: