in reply to Why does a full iteration over array & shift is not emptying the array
Use a while loop instead of a for loop:
@a = 1 .. 10;; while( defined( my $x = shift @a ) ) { print $x };; 1 2 3 4 5 6 7 8 9 10 print scalar @a;; 0 [download]