古い記事
ランダムジャンプ
新しい記事
順番を保ったまま重複要素を削除する Perl コード。
よく出てくるのでメモ。

■コード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
この記事に言及しているこのブログ内の記事