add / del / upd(= same)要素の数を比較して取得したい繰り返し値を持つ文字列の2つの配列があります。
my @array1 = ("aaa", "bbb", "ccc", "eee", "eee");
my @array2 = ("aaa", "aaa", "bbb", "ccc", "ccc", "ddd", "fff");
私は次のようなものが必要です:
add: 4
del: 2
upd: 3
List :: Compareを試してみました:
my @array1 = ("aaa", "bbb", "ccc", "eee", "eee");
my @array2 = ("aaa", "aaa", "bbb", "ccc", "ccc", "ddd", "fff");
my $lc = List::Compare->new(\@array1, \@array2);
print Dumper "intersection (upd): ".scalar($lc->get_intersection);
print Dumper "only first (del): ".scalar($lc->get_unique);
print Dumper "only second (add): ".scalar($lc->get_complement);
ただし、繰り返される値に対しては機能しません。
$VAR1 = 'intersection (upd): 3';
$VAR1 = 'only first (del): 1';
$VAR1 = 'only second (add): 2';
どうすればこの問題を解決できますか?