Perlで順番を保ったまま重複要素を削除する方法
2012-06-13-2
[Programming]
順番を保ったまま重複要素を削除する Perl コード。
よく出てくるのでメモ。
■コード1:
■コード2:
■ワンライナー:
■実行結果:
よく出てくるのでメモ。
■コード1:
#!/usr/bin/perl
use strict;
use warnings;
my @list = qw(pig cat bat pig dog cat);
my %seen;
foreach my $i (@list) {
next if $seen{$i};
print "$i\n";
$seen{$i} = 1;
}
■コード2:
#!/usr/bin/perl
use strict;
use warnings;
my @list = qw(pig cat bat pig dog cat);
my %seen;
print join("\n", grep {!$seen{$_}++} @list), "\n";
■ワンライナー:
echo "pig\ncat\nbat\npig\ndog" | perl -nle 'print if!$s{$_}++'
■実行結果:
pig cat bat dog
この記事に言及しているこのブログ内の記事
