0

ここにコードがあります:

#!/usr/bin/perl -w
use strict;
use Data::Dumper;

my $var = { 
    Cars => {
        cars_name => [
            "GT500", 
            "Beetle",
            "P1800"
        ]
    },           
    Bikes => {
        Bikes_name => [
            "Pulsar",
            "Discover",
            "CBR"
        ]
    }
};

#Traversing the hash of hash of array
print "$var\n";
foreach my $k1 (keys %{$var}) {

    print "$k1\n";
    print $var->$k1;
    #foreach my $k2 (keys %{$var->$k1}) {

         #print"$k2\n";
    #}   
}   

cars_name と Bikes_name を印刷しようとすると、Unblessed 参照でメソッド Cars を呼び出すことができないというエラー メッセージが表示されます。どこで間違いを犯しているのかわかりません。ええと、これを理解することでprint $var->$k1; 問題を作成する行。ですから、どんな体でも私を助けてください。

ありがとう

4

1 に答える 1

4
 print $var->$k1;

つまり、オブジェクトのメソッドを呼び出しています。ハッシュにアクセスしたい:

 print $var->{$k1};
于 2012-09-28T07:26:10.873 に答える