配列内の重複を取り除く - Perl

配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。

サンプル

;#
;#配列の重複を取り除く
;#

#-- 初期化する --#
@array = (
      '東京', '大阪', '広島', '京都', '東京'
    , '広島', '横浜', '大阪', '京都', '島根'
);

#-- 重複削除 --#
@uniq = uniqArray(\@array);

#-- 表示 --#
foreach my $value ( @uniq ){
    print "$value\n";
}

#------------------------------#
#配列(リスト)から重複を取り除く
#------------------------------#
sub uniqArray{
    my $array = shift;
    my %hash  = ();

    foreach my $value ( @$array ){
        $hash{$value} = 1;
    }

    return(
        keys %hash
    );
}

実行結果

島根
京都
横浜
東京
広島
大阪