http://www.perlmonks.org?node_id=771481


in reply to $#array issue

If you comment the second line, $end will be undefined in the loop condition. Please, use strict and use warnings in your code if you want to learn Perl the easy way. This code works as expected:

use strict; use warnings; my @array=(1,2,3,4,5,6,7,8,9); my $end=($#array+1); my $index = 0; while($index < $end){ my $last=pop(@array); print "$last\n"; $index++; }

BTW, here are another ways to address the same problem:

my @array = (1..9); print +(pop @array),"\n" while (@array);

or even

my @array = (1..9); print "array[$_]\n" for (reverse (0..$#array));

citromatik

Replies are listed 'Best First'.
Re^2: $#array issue
by Your Mother (Archbishop) on Jun 14, 2009 at 23:14 UTC
    perl -le 'print and sleep 1 for 1 .. 3, "Jinx, you owe me a Coke."'