2
我知道如何避免一維數組中的重複。如何避免數組數組中的重複值?
但是,我有一個數組數組,它的兩行可能會保存具有不同引用但數值相同的數組。我試過這個:
sub unique {
my %seen;
grep !$seen{join('',$_)}++, @_
}
my @aa = ( ["1","2","3"],["1","2","3"],["1","2","4"]);
my @bb = unique(@aa);
print $_ for (@bb);
它應該刪除兩個「123」陣列中的一個,但它不。可能是因爲$ _擁有一個引用而不是可以加入的數組?當然,我可以循環訪問$ _參考數組並將所有值連接起來,然後將其用作%可見哈希的關鍵字。
但我懷疑有Perl中的一個非常優雅的解決方案,我還不知道的...
很好用。我將使用@ $ _方法,因爲我的真實數據結構不允許像例子那樣的重複。請問,@ $ _實際上做了什麼?數組前的@是否總是返回數組本身? – jackthehipster 2014-09-04 12:33:17
@jackthehipster:是的。在解引用更復雜的結構時,可能需要花括號:'@ {$ hash {key}}'。 – choroba 2014-09-04 12:58:46
通過'$;'連接或者甚至單個空間似乎是最優的。 – 2014-09-04 12:59:50