my $elementsToGet = 2; # how many elements shell be in @sublist my @newElements = @elements; while (my @subList = splice(@newElements, 0, $elementsToGet)) { # do something with @subList } # while Beware that @newElements might be empty after the while... #### for (my $i=0; $i<=$#elements; $i+=2) { # do something with $elements[$i] and $elements[$i+1] } # for