Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
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 ( [id://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

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?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2024-03-28 14:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found