Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^3: Different behaviour of 'stat' function after assignment to $! (errno).

by Anonymous Monk
on May 24, 2011 at 11:45 UTC ( [id://906474]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Different behaviour of 'stat' function after assignment to $! (errno).
in thread Different behaviour of 'stat' function after assignment to $! (errno).

Nothing "funny" has been done to $! before the second Dump, but it hasn't changed since before the stat.

$! , errno, is supposed to be positive, so using -$! is something funny :)

  • Comment on Re^3: Different behaviour of 'stat' function after assignment to $! (errno).

Replies are listed 'Best First'.
Re^4: Different behaviour of 'stat' function after assignment to $! (errno).
by ikegami (Patriarch) on May 24, 2011 at 15:53 UTC
    Negating positive numbers isn't doing something funny.
Re^4: Different behaviour of 'stat' function after assignment to $! (errno).
by jpl (Monk) on May 24, 2011 at 12:29 UTC
    $! , errno, is supposed to be positive, so using -$! is something funny :)
    All the "funny" stuff happens after the second Dump, which happens immediately after the stat. Unless the optimizer is punishing us for something that is going to happen later, I cannot explain why the failing stat did not appear to modify $!.
      It does modify $!, but its only reflected when you Peek if you put $! in int/boolean/string context first, because Peek won't force the conversion. The assignment modified the IV slot, but stat modified the NV/PV slot.
      $ perl -MDevel::Peek -E " stat 1; Dump($!); $!=666; stat 1; $! and Dum +p($!); " SV = PVMG(0x9b3bfc) at 0x9ba5ec REFCNT = 1 FLAGS = (GMG,SMG) IV = 0 NV = 0 PV = 0 MAGIC = 0x9d904c MG_VIRTUAL = &PL_vtbl_sv MG_TYPE = PERL_MAGIC_sv(\0) MG_OBJ = 0x9ba61c MG_LEN = 1 MG_PTR = 0x9da014 "!" SV = PVMG(0x9b3bfc) at 0x9ba5ec REFCNT = 2 FLAGS = (GMG,SMG,pNOK,pPOK) IV = 666 NV = 2 PV = 0x3ffee4 "No such file or directory"\0 CUR = 25 LEN = 28 MAGIC = 0x9d904c MG_VIRTUAL = &PL_vtbl_sv MG_TYPE = PERL_MAGIC_sv(\0) MG_OBJ = 0x9ba61c MG_LEN = 1 MG_PTR = 0x9da014 "!"

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-04-25 11:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found