Perl-数组去重
1、使用子函数
sub uniq {
my %seen;
grep !$seen{$_}++, @_;
}
例子:
my @array = qw(one two three two three);
my @filtered = uniq(@array);
print "@filtered\n";
2、采用List::MoreUtils模块
use List::MoreUtils qw(uniq);
my @unique = uniq( 1, 2, 3, 4, 4, 5, 6, 5, 7 ); # 1,2,3,4,5,6,7
my $unique = uniq( 1, 2, 3, 4, 4, 5, 6, 5, 7 ); # 7
3、借助hash键值唯一的特性
my %hash = map { $_, 1 } @array;
# or a hash slice: @hash{ @array } = ();
# or a foreach: $hash{$_} = 1 foreach ( @array );
my @unique = keys %hash;
最重要学会看帮助文档:
perldoc -q duplicate

浙公网安备 33010602011771号