#!/usr/bin/perl use strict; use warnings; my @array=(1..10); while (@array) { print "@array\n"; shift (@array); } __END__ 1 2 3 4 5 6 7 8 9 10 2 3 4 5 6 7 8 9 10 3 4 5 6 7 8 9 10 4 5 6 7 8 9 10 5 6 7 8 9 10 6 7 8 9 10 7 8 9 10 8 9 10 9 10 10 #### #!/usr/bin/perl use strict; use warnings; my @array=(1..10); print "@array\n"; foreach (@array) { #shift (@array); #see below print "default var = $_ @array\n"; } __END__ 1 2 3 4 5 6 7 8 9 10 default var = 1 1 2 3 4 5 6 7 8 9 10 default var = 2 1 2 3 4 5 6 7 8 9 10 default var = 3 1 2 3 4 5 6 7 8 9 10 default var = 4 1 2 3 4 5 6 7 8 9 10 default var = 5 1 2 3 4 5 6 7 8 9 10 default var = 6 1 2 3 4 5 6 7 8 9 10 default var = 7 1 2 3 4 5 6 7 8 9 10 default var = 8 1 2 3 4 5 6 7 8 9 10 default var = 9 1 2 3 4 5 6 7 8 9 10 default var = 10 1 2 3 4 5 6 7 8 9 10 With the "shift turned on" (not commented out) 1 2 3 4 5 6 7 8 9 10 default var = 1 2 3 4 5 6 7 8 9 10 default var = 3 3 4 5 6 7 8 9 10 default var = 5 4 5 6 7 8 9 10 default var = 7 5 6 7 8 9 10 default var = 9 6 7 8 9 10