这个perl关联数组有什么问题?

时间:2013-10-14 11:25:34

标签: perl

脚本A

use strict;

our %pre_pkg_configs;

$pre_pkg_configs{locDbList}={qw(default default_test)};

脚本B

//加载脚本A

my @locDbNames = ();

foreach my $dbName ($pre_pkg_configs{"locDbList"}){
  print $dbName;
  push(@locDbNames,$dbName);
}

输出

HASH(0x119b368)

我期待值:默认default_test

1 个答案:

答案 0 :(得分:5)

{ ... }创建对哈希的引用(您称之为关联数组)。

如果您打印参考,则会得到类似HASH(0x119b368)

的输出

听起来你想要一个数组,所以使用arrayref而不是hashref:

$pre_pkg_configs{locDbList}=[ qw(default default_test) ];

然后,在打印时,您需要将arrayref转换为数组:

foreach my $dbName (@{$pre_pkg_configs{"locDbList"}}){