/ / Wie kann man Werte verschachtelter Hashes in Perl ausgeben? - Perl

Wie kann man verschachtelte Hash-Werte in Perl ausgeben? - Perl

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

Dies wird gedruckt

eins 1

zum Terminal. Aber was, wenn mein Code a hat Wörterbuch Hash in einem Wörterbuch Hash wie folgt:

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

print %dict;

Dies gibt die Ausgabe:

1HASH(0xb1db78)

Selbst wenn ich die letzte Zeile zu ändern

print $dict{"1"};

Die Ausgabe ist:

HASH (0x13ccb78)

Wie kann ich den Inhalt der Wörterbuch Hash anstelle des Referenzorts?

Antworten:

3 für die Antwort № 1

%dict["one"]=1; << Das ist falsch

es sollte sein $dict{"one"}=1;

Sie sollten etwas wie unten haben. Warnung: das ist ungeprüfter Code, aber Sie bekommen den Punkt, was ich sagen will:

#!/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 für die Antwort № 2

Wenn Sie die gesamte Struktur verwenden möchten, verwenden Sie den Kern Data::Dumper Modul.

use strict;
use warnings;

use Data::Dumper;

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

print Dumper( %hash );

Ausgänge:

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

Wenn Sie mit verschachtelten Strukturen in Perl arbeiten wollen (über alles, was trivial ist), müssen Sie etwas darüber lernen Verweise. Wenn Sie mit Zeigern vertraut sind, dann sind Sie auf halbem Weg.

Die besten Ressourcen sind in der offiziellen Dokumentation: