in reply to Re: Incrementing "Infinity" bug
in thread Incrementing "Infinity" bug

Hi Ken!

> As you were probably aware, warnings alert you and strictures disallow it altogether:

Yes, I became aware after posting the first time.

I expected inf and it's brothers² to be constants because of their magic behavior when being numified.

Introducing constants¹ for inf, -inf and NaN (even all uppercase like INF) would help clarifying the situation.

Cheers Rolf

( addicted to the Perl Programming Language)

¹) like I demonstrated here

²) every string starting with inf (no matter if upper or lower case) numifies to inf:

DB<106> $a="Infinity"+0 => "inf" DB<109> $a="Inftyddssssd"+0 => "inf" DB<110> $a="Inf"+0 => "inf" DB<111> $a="InF"+0 => "inf"

UPDATE: line 109 with"Inftyddssssd" fails with activated warnings, anything else with lc($else) ~~ ['inf','infinity'] won't

DB<123> use warnings; $a='InFiNiTy'+0 => "inf" DB<125> use warnings;$a="Inftyddssssd"+0 Argument "Inftyddssssd" isn't numeric in addition (+) at (eval 74)[mul +ti_perl5db.pl:644] line 2.

Replies are listed 'Best First'.
Re^3: Incrementing "Infinity" bug
by kcott (Archbishop) on Mar 25, 2013 at 16:28 UTC

    I came across Inf (and friends) some years ago, decided they all looked somewhat flakey, and haven't used them since. Your posting has (somewhat) piqued my interest again. Here's some interesting results from Scalar::Util's looks_like_number() function.

    $ perl -E ' use Scalar::Util qw{looks_like_number}; my @infs = (inf, Inf, INF, infinity, Infinity, INFINITY, -inf, -Inf, -INF, -infinity, -Infinity, -INFINITY, Inftyddssssd, infighting, Infighting, -Inftyddssssd, -infighting, -Infighting); say "$_ : ", looks_like_number($_) for @infs; ' inf : 20 Inf : 20 INF : 20 infinity : 20 Infinity : 20 INFINITY : 20 -inf : 28 -inf : 28 -inf : 28 -inf : 28 -inf : 28 -inf : 28 Inftyddssssd : 0 infighting : 0 Infighting : 0 -Inftyddssssd : 0 -infighting : 0 -Infighting : 0

    I also noted that the documentation for this function links to perlapi - looks_like_number, which may be of interest ot you.

    -- Ken

      I suppose these numbers reflect some flags?

      something like:

      2^3 for negative

      2^2 for special value

      2^4 for infinity

      couldn't find explanation in the docs.

      > decided they all looked somewhat flakey,

      agreed, but shouldn't we try to fix it.

      Don't you think the algorithm I used is a valid use case? (non-reachable integer)

      Cheers Rolf

      ( addicted to the Perl Programming Language)