【发布时间】:2013-01-19 13:01:18
【问题描述】:
我搜索了Google,但没有找到任何有用的东西。
尽管有很多 Perl 教程,但我没有找到任何教程会提到每个键都有不同值的哈希? 在 Perl 中这样的事情是可能的吗?
例如,是否有一个像这样有 2 个键(a、b)的哈希,其中:
$myhash{"a"}=1;
$myhash{"b"}=[ 'hamnet', 'shakespeare', 'robyn', ];
以上可以吗?
我试过了:
#!/usr/bin/perl
use strict;
my %x;
$x{"a"}="b";
$x{"b"}=['c','d'];
foreach (keys %x)
{
print $_."\n";
print "$x{$_}";
}
但它正在输出:
a
bb
ARRAY(0x1ece50)
我对如何访问此哈希的元素感到困惑。
我想告诉你这一切,尽管我对 Perl 有点了解,但我在哈希方面完全是新手。
好的,我发现了一件事——要访问散列中的数组,我需要这样做:
@{$x{"b"}}
但是正如我已经告诉你的,哈希值可以是数组也可以是标量值,所以要访问上述哈希值,我需要先识别值的类型,然后再访问它!我怎样才能做到这一点? 也就是说,如何识别键的值是标量、数组还是散列?
【问题讨论】:
-
输出看起来不错。你期待什么?