my @old = split(/\s+/, $old); my @new = split(/\s+/, $new); traverse_sequences(\@old, \@new, { MATCH => sub { print OUTPUT shift(@old)."\n"}, DISCARD_A => sub { print OUTPUT "".@old->[shift]."\n"}, DISCARD_B => sub { print "".@new->[shift, shift]."\n"}, } );