Pathologically Eclectic Rubbish Lister | |
PerlMonks |
Re^4: how internally $#array is working in Perlby jethro (Monsignor) |
on Aug 13, 2010 at 09:34 UTC ( [id://854869]=note: print w/replies, xml ) | Need Help?? |
If you set $[ to 1 you tell perl that array index 0 doesn't exist. Now ask yourself: What should perl do if you then access or print $a[0]? What's the value of an array index that doesn't exist? The answer is: Anything
If you write print 1/0; you don't expect a meaningful answer, right? Similarly you don't get a meaningful value in $a[0] if you tell perl that $a[0] doesn't exist The correct way to handle access to index 0 would be to print an error message or warning. But that might break some really old scripts. So perl seems to print the same value that is in index 1, the first "legal" index. And a word of advice: Don't change $[. And if you want to loop through an array, foreach (@a) {} will get you any value, no matter at what index the array begins and ends
In Section
Seekers of Perl Wisdom
|
|