+ -
当前位置:首页 → 问答吧 → 请问散列的键可以是数组吗?

请问散列的键可以是数组吗?

时间:2010-10-05

来源:互联网

比如
%server = (
@www=(1,2,3) => 123,
@lala=(1,3,4) => 234,
@hehe=(4,3,6) => 456
)

请问散列可以这样做吗

作者: ztj2247   发布时间: 2010-10-05

不能,散列的键必须是标量。
数组是列表量,所以不能用作散列的键。
但是,可以把数组的引用作为散列的键。
如下:
  1. my $www_ref = [my @www=(1,2,3)];
  2. my $lala_ref = [my @lala=(1,3,4)];
  3. my $hehe_ref = [my @hehe=(4,3,6)];

  4. my %server = (
  5. $www_ref => 123,
  6. $lala_ref => 234,
  7. $hehe_ref => 456
  8. );
复制代码

作者: 珞水的大叔   发布时间: 2010-10-05



QUOTE:
不能,散列的键必须是标量。
数组是列表量,所以不能用作散列的键。
但是,可以把数组的引用作为散列的键 ...
珞水的大叔 发表于 2010-10-05 17:50




    请问
我用以下内容进行循环取哈希的值,如何遍历“引用的数组”
while (($holder_ref, $server) = each(%server)) {

//遍历$holder_ref的值 ,请问如何实现??

}

作者: ztj2247   发布时间: 2010-10-05



QUOTE:
//遍历$holder_ref的值 ,请问如何实现??



解引用它。 @holder = @$holder_ref;
perldoc perlref看一看。

作者: 兰花仙子   发布时间: 2010-10-05