in reply to Re^2: literal lists
in thread literal lists

I guess because undef in an integer context will be taken as '0' (albeit with a warning if you have asked for warnings), whereas -1 is not a valid array index:

@b = (a .. z); + $#b = undef; + print "@b"; + $#b = -1; + print "@b";

/J\

Replies are listed 'Best First'.
Re^4: literal lists
by danmcb (Monk) on Sep 06, 2005 at 12:42 UTC

    That makes some sense. -1 is a valid index though, in normal use - it gives you the last element. But in the code you gave, the -1 indeed makes @b an empty array (I didn't know you could do that). Kind of like a quick way to truncate arrays.