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

これは印刷されます

one1

ターミナルに。しかし、私のコードの辞書ハッシュに次のような辞書ハッシュがある場合はどうなりますか?

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

print %dict;

これにより、次の出力が得られます。

1HASH(0xb1db78)

最後の行をに変更しても

print $dict{'1'};

出力は次のとおりです。

ハッシュ(0x13ccb78)

参照場所の代わりに辞書ハッシュの内容を取得するにはどうすればよいですか?

4

2 に答える 2

8

構造全体が必要な場合は、コアData::Dumperモジュールを使用してください。

use strict;
use warnings;

use Data::Dumper;

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

print Dumper( \%hash );

出力:

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

Perlでネストされた構造を操作したい場合(些細なことを超えて)、参照について学ぶ必要があります。あなたがポインタに精通しているなら、あなたはそこの半分にいます。

最高のリソースは公式ドキュメントにあります:

于 2012-10-07T06:26:33.910 に答える
4

%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";
}
于 2012-10-07T06:25:51.763 に答える