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

 

posted @ 2019-08-07 23:09  BinHome  阅读(782)  评论(0)    收藏  举报