use strict; use warnings; my ($l, $r, $before, $after); $before = [qw(1 2 3 4 5 6 7 8 9 10)]; while () { chomp; $after = [split / /]; for ($l = 0; $before->[$l] == $after->[$l]; $l++) {} for ($r = $#$before; $before->[$r] == $after->[$r]; $r--) {} if ($l == $r - 1) { print "Either $after->[$l] moved to position $l, or $after->[$r] to position $r.\n"; } elsif ($before->[$l] == $after->[$l+1]) { print "$after->[$l] moved to position $l\n"; } else { print "$after->[$r] moved to position $r\n"; } } __DATA__ 10 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 10 1 1 10 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1 10 1 2 3 4 5 6 8 7 9 10