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

その(配列参照) を渡し、それらを逆参照する必要があります (以下に示すように、マップ関数内で@記号を先頭に追加します)。

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 に答える