4.7 リストからユニークな要素を抽出する

# 単純な方法
%seen = ();
@uniq = ();
foreach $item (@list) {
  unless ($seen{$item}) {
    # ここに到達したら、そのアイテムはユニークである。
    $seen{$item} = 1;
    push(@uniq, $item);
   }
}

# 処理速度の速い方法1
%seen = ();
foreach $item (@list) {
  push(@uniq, $item) unless $seen{$item}++;
}

# 処理速度の速い方法2(ユーザ関数を使用)
%seen = ();
foreach $item (@list) {
  som_func($item) unless $seen{$item}++;
}

# 処理速度の速い方法3
%seen = ();
foreach $item (@list) {
  $seen{$item}++;
}
@uniq = keys %seen;

# 処理速度の速い方法4
%seen = ();
@uniq = grep { ! $seen{$_}++} @list;