1

我有以下代码

my %ages = (); 

$a1 = "Michael Caine";
$a2 = "Dirty Den";
$a3 = "Angie";
$a4 = "Willy";
$a5 = "The Queen Mother";

$ages{$a1} = 39;
$ages{$a2} = 34;
$ages{$a3} = 27;
$ages{$a4} = "21 in dog years";
$ages{$a5} = 108;

print $age->{$a1};

但这不是打印。我不想使用键或值。如何使用'$age->{$a1}'类型语法访问哈希的内容?

4

4 回答 4

5

您正在尝试访问$age不存在的。此外,您正在尝试使用额外的参考->,这是错误的。

你需要使用这个:

$ages{$a1}
于 2013-07-16T10:25:32.577 回答
4

当您访问哈希时,您必须这样做:

print $ages{$a1};

因为它不是参考。

我建议你阅读Modern Perl这本书,它对我帮助很大。

于 2013-07-16T10:23:22.537 回答
0

此代码可以帮助您

  sub storeArray {
        $hash = {
            key1 => [1,2,3,4,5],
            key2 => [6,7,8,9,0],
        };
        return $hash;   # don't return reference cause it already is 
    }

print $hash->{'key1'}->[0][2];
于 2013-07-16T12:22:41.410 回答
0

如果你想使用哈希解引用

$ages->{$a1}

您首先需要一个哈希引用

my $ages = \%ages;
于 2013-07-16T19:56:29.530 回答