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