2

我对 perl 有点陌生,我想问一下如何在子例程中传递数组的散列。更具体地说,我有一个数组哈希

my %records = (a => [ qw/ A B C / ], b => [ qw/ C D E A / ], c => [ qw/ A C E / ],);

我想申请

use Array::Utils qw(:all)
#unique union
my @unique = unique(array1, array2, ..., arrayX);

到哈希中的所有数组。我正在尝试制作一个子例程,该子例程将哈希作为输入并返回其中所有数组的唯一联合。任何帮助都感激不尽。

在此先感谢,灭霸

4

1 回答 1

4

您必须传递它的(它们是数组引用)并取消引用它们(如下所示,在map@函数中,通过在符号前面添加):

use Array::Utils qw(:all);
my %records = (a => [ qw/ A B C / ], b => [ qw/ C D E A / ], c => [ qw/ A C E / ],);
my @unique = unique(map {@$_} values %records);
print join(' ',@unique); #will print "A B C D E"
于 2013-10-30T17:05:05.163 回答