use strict; my @aryA = ( "radish", "banana", "orange", "apple", "ginger", "banana", "strawberry", "grape", "apple" ); my @aryB = ( "radish", "ginger", "potato" ); my $str0; my $str1; ## 配列A $str0 = join(" , ", @aryA); ## 配列Aから重複排除後に配列Bの要素を排除 { my %wk; my @ans; my %ex = map( ($_=>0), @aryB ); @ans = grep( !$wk{$_}++, @aryA ); @ans = grep( !exists($ex{$_}), @ans ); $str1 = join(" , ", @ans ); } print "0:$str0\n"; print "1:$str1\n";