use warnings;use strict;use Algorithm::Diff;my@seq_a=qw( a x b y c z p d q 1 2 3 4 ! 5 6 7);my@seq_b=qw( a b c a x b y c z 1 2 3 4 ? 5 6 7);## Turn seq_a into seq_b## This is the array that will contain# the same values as @seq_b:my@seq_B=();## new computes the smallest set of additions and deletions# necessary to turn the first sequence into the second.#my$diff= Algorithm::Diff->new(\@seq_a,\@seq_b);while(my$hunk=# A hunk represents a contiguous section# of items which should be added, deleted# replaced, or left unchanged.# ---------------------------------------$diff-> Next()){print"\n";# ----------------------------------print"$hunk: $hunk ";print"Diff: ",$diff->Diff()," ";print"Same "if$diff->Same();print"\n";my@items_a=$diff-> Items(1);my@items_b=$diff-> Items(2);
push @seq_B,@items_b;print" A: ".(join "-",@items_a)."\n";print" B: ".(join "-",@items_b)."\n";}print"------------------------\n";print((join "-",@seq_b),"\n");print((join "-",@seq_B),"\n");