我有两个数组@Results和@结果2它们之间有一个数字的群众。 e.g(12345678 182937439 18329741等)查找唯一值在两个数组 - Perl的
在两个数组,如果我将它们结合在一起,我能得到重复,我不想。我想比较两个数组,保留唯一值并逐一打印。
任何帮助,请将不胜感激......
我有两个数组@Results和@结果2它们之间有一个数字的群众。 e.g(12345678 182937439 18329741等)查找唯一值在两个数组 - Perl的
在两个数组,如果我将它们结合在一起,我能得到重复,我不想。我想比较两个数组,保留唯一值并逐一打印。
任何帮助,请将不胜感激......
因此重复数据删除阵列。此代码从List::MoreUtils
uniq
功能借来的:
sub uniq {
my %seen;
grep { !$seen{$_}++ } @_;
}
my @unique = uniq(@results, @results2);
完美!谢谢TLP! – user2320229 2013-04-25 15:00:17
@ user2320229不客气。 – TLP 2013-04-25 15:04:07
使用散列数值可有点玄乎,特别是如果这些值浮点。 '200','0200','200.0'和'2E2',在许多其他之中,可能都代表相同的值。即使值都保证是整数,它可能是最好的应用'{地图sprintf的“%d”,$ _} @ data'使一切均匀。 – Borodin 2013-04-25 15:32:34
每当你想到“独特的”思考“哈希”
#!/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
型'的perldoc -q duplicate'在命令提示符。 – 2013-04-25 14:47:09