2013-04-25 73 views
0

我有兩個數組@Results和@結果2它們之間有一個數字的羣衆。 e.g(12345678 182937439 18329741等)查找唯一值在兩個數組 - Perl的

在兩個數組,如果我將它們結合在一起,我能得到重複,我不想。我想比較兩個數組,保留唯一值並逐一打印。

任何幫助,請將不勝感激......

+2

型'的perldoc -q duplicate'在命令提示符。 – 2013-04-25 14:47:09

回答

1

因此重複數據刪除陣列。此代碼從List::MoreUtilsuniq功能借來的:

sub uniq { 
    my %seen; 
    grep { !$seen{$_}++ } @_; 
} 

my @unique = uniq(@results, @results2); 
+0

完美!謝謝TLP! – user2320229 2013-04-25 15:00:17

+0

@ user2320229不客氣。 – TLP 2013-04-25 15:04:07

+0

使用散列數值可有點玄乎,特別是如果這些值浮點。 '200','0200','200.0'和'2E2',在許多其他之中,可能都代表相同的值。即使值都保證是整數,它可能是最好的應用'{地圖sprintf的「%d」,$ _} @ data'使一切均勻。 – Borodin 2013-04-25 15:32:34

0

每當你想到「獨特的」思考「哈希」

#!/usr/bin/perl 

use strict; 
use warnings; 

my @a = qw(1 2 3); 
my @b = qw(3 4 5); 

my %x = map { $_ => 1 } @a, @b; 

print join ", ", keys %x; # 4, 1, 3, 2, 5