while(@arr) { my ($x,$y) = (shift(@arr), shift(@arr)); ... } #### use List::MoreUtils qw(natatime); ;; my $it = natatime 2, @arr; while (my ($x, $y) = $it->()) { ... }