http://qs321.pair.com?node_id=657344


in reply to Re^2: $array[ 'Infinity' ]
in thread $array[ 'Infinity' ]

Is Perl suppose to support Infinity as a number? If so, it has two bugs: it doesn't work, and it's not in the docs. It's not in the 5.10.0 docs either.

It's not recognized by the parser:

>perl -e "use Devel::Peek; $x="Infinity"; Dump($x); $x=Infinity; Dump( +$x)" SV = PV(0x22612c) at 0x226000 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x182cb54 "Infinity"\0 CUR = 8 LEN = 12 SV = PV(0x22612c) at 0x226000 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x182cb54 "Infinity"\0 CUR = 8 LEN = 12 >perl -e "use Devel::Peek; $x="-Infinity"; Dump($x); $x=-Infinity; Dum +p($x)" SV = PV(0x226150) at 0x226000 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x1835404 "-Infinity"\0 CUR = 9 LEN = 12 SV = PV(0x226150) at 0x226000 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x1835404 "-Infinity"\0 CUR = 9 LEN = 12

I also get different output from the commands you issued.

>perl -le "print 0+(-Infinity)" 0 >perl -le "print 0+('Infinity')" 0
>perl -v This is perl, v5.8.8 built for MSWin32-x86-multi-thread (with 25 registered patches, see perl -V for more detail) Copyright 1987-2006, Larry Wall Binary build 817 [257965] provided by ActiveState http://www.ActiveSta +te.com Built Mar 20 2006 17:54:25 ...

Has this been discussed on P5P?

Replies are listed 'Best First'.
Re^4: $array[ 'Infinity' ]
by ysth (Canon) on Dec 17, 2007 at 01:38 UTC
Re^4: $array[ 'Infinity' ]
by blokhead (Monsignor) on Dec 16, 2007 at 23:45 UTC
    I have no idea what it's supposed to do. I couldn't find anything in my local docs about it either (nor about NaN, which has similar behavior on my build).

    Maybe it depends on the local floating-point arithmetic library?

    Searching came up with: this perl5.porters msg, and also FMTYEWTK about is_numeric, which seems to suggest that perl calls to the atof() library function. Finally, bignum suggests that "Perl doesn't always handle bareword NaN/inf properly."

    blokhead