4.8 一方の配列にあってもう一方にない要素を見つける

## 単純な方法
# @Aと@Bにはすでに要素が格納されている
%seen = ();          # @Bの要素を判定するためのルックアップテーブル
@aonly = ();        # 結果

# ルックアップテーブルの作成
foreach $item (@B) { $seen{$item} = 1 }

# @Aにはあり、@Bにはない要素を検出
foreach $item (@A) {
  unless ($seen{$item}) {
    # %seen内に存在しない要素を@aonlyに追加する
    push(@aonly, $item);
  }
}

## Perl的な方法
my %seen;      # ルックアップテーブル
my @aonly;    # 結果

# ルックアップテーブルの作成
@seen{@B} = ();

foreach $item (@A) {
  push(@aonly, $item) unless exists $seen{$item};
}

## ループを使用しない方法
my %seen;
@seen{@A} = ();
delete @seen{@B};
my @aonly = keys %seen;