Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^3: Any reason NV is not marked as POK when accessed as string?

by syphilis (Archbishop)
on Mar 23, 2017 at 23:16 UTC ( #1185694=note: print w/replies, xml ) Need Help??


in reply to Re^2: Any reason NV is not marked as POK when accessed as string?
in thread Any reason NV is not marked as POK when accessed as string?

... makes me think maybe we used to trust the cached value

I think https://www.nntp.perl.org/group/perl.perl5.porters/2016/10/msg240576.html and responses is relevant here.
As also mentioned there, the stringification of the NV is retained if the NV is an inf or nan.
I assumed this was ok because stringifications of inf and nan were not affected by locale. (But I notice that stringification of 0.0 to "0" is not retained.)

Cheers,
Rob
  • Comment on Re^3: Any reason NV is not marked as POK when accessed as string?

Replies are listed 'Best First'.
Re^4: Any reason NV is not marked as POK when accessed as string?
by demerphq (Chancellor) on Mar 23, 2017 at 23:23 UTC

    It is not very consistent. Consider:

    $ perl -MDevel::Peek -e'$x="1e1"; 0+$x; Dump($x)' SV = PVNV(0xc27550) at 0xc48bc8 REFCNT = 1 FLAGS = (IOK,NOK,POK,pIOK,pNOK,pPOK) IV = 10 NV = 10 PV = 0xc37d80 "1e1"\0 CUR = 3 LEN = 16 $perl -MDevel::Peek -e'$x="1.1e1"; 0+$x; Dump($x)' SV = PVNV(0x1513550) at 0x1534bc8 REFCNT = 1 FLAGS = (IOK,NOK,POK,pIOK,pNOK,pPOK) IV = 11 NV = 11 PV = 0x1523d80 "1.1e1"\0 CUR = 5 LEN = 16

    Something smells here. I think that patch needs to be reviewed and supplanted.

    ---
    $world=~s/war/peace/g

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1185694]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2022-05-28 15:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (99 votes). Check out past polls.

    Notices?