No, this is not caused by numerical equivalence to zero. Nor is it caused by Infinity/inf differences:
@a = (5 .. 10);
-inf==0 ? "-inf is zero\n" : "-inf isn't zero\n",
'inf'==0 ? "inf is zero\n" : "inf isn't zero\n";
# still outputs 10 and 5 and states that the infinities aren't zeroes
perl --version says "This is perl, v5.8.8 built for x86_64-linux-thread-multi"
Update: The weird thing is that indexing by -inf gives the first element and indexing by inf gives the last one. That's not what I'd expect.
use strict; use warnings; print "Just Another Perl Hacker\n";