配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。
サンプル
;# ;#配列の重複を取り除く ;# #-- 初期化する --# @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 ); }
実行結果
島根 京都 横浜 東京 広島 大阪