Debuginfo

思考とアウトプット

Perlで一意な(Uniqueな)配列を取り出す方法

Perl Adventカレンダーのsekimura氏のエントリ。

これを見るまでずっとハッシュにいれてkeysしてユニークな配列を取り出してました。
しかし,このエントリを見てから,なんてスマートな方法があるんだ!とこっそり感動してました。

my %seen;
my @uniq = grep { ++$seen{$_} < 2 } (@cities, @prefs);
    • -


7月17日 追記

http://d.hatena.ne.jp/ichirin2501/20110716/1310804204

を参考にすると

sub unique_slice{
    my @array = @_;
    my %hash;
    @hash{@array} = ();
    return keys %hash;
}

が良いみたい。みなさん,スマートだ。