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

Re: map a list - segfault

by imp (Priest)
on Mar 12, 2007 at 20:00 UTC ( #604422=note: print w/ replies, xml ) Need Help??


in reply to map a list

The block that caused the segfault doesn't work the way you think it does, because of precedence:

perl -MO=Deparse -e ' (@n=(1,2) && ($n[1],$n[0])); (@n=(1,2) && ($n[1],$n[0])); (@n=(1,2) && ($n[1],$n[0])); ' @n = ('???', 2) && ($n[1], $n[0]); @n = ('???', 2) && ($n[1], $n[0]); @n = ('???', 2) && ($n[1], $n[0]);
Using 'and' instead of && would work, or an extra set of parens.
perl -MO=Deparse -e ' (@n=(1,2) && ($n[1],$n[0])); ((@n=(1,2)) && ($n[1],$n[0])); (@n=(1,2) and ($n[1],$n[0])); ' @n = ('???', 2) && ($n[1], $n[0]); $n[1], $n[0] if @n = (1, 2); $n[1], $n[0] if @n = (1, 2);

As for the segfault itself, I don't grok why it breaks but Devel::Peek gives a hint:

perl -MDevel::Peek -le ' (@n=(1,2) && ($n[1],$n[0])); print Dump \@n; (@n=(1,2) && ($n[1],$n[0])); print Dump \@n;' SV = RV(0x3c02b018) at 0x3c0062dc REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x3c011718 SV = PVAV(0x3c0084dc) at 0x3c011718 REFCNT = 2 FLAGS = () IV = 0 NV = 0 ARRAY = 0x3c02a4f0 FILL = 1 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = NULL(0x0) at 0x3c006168 REFCNT = 1 FLAGS = () Elt No. 1 SV = NULL(0x0) at 0x3c006264 REFCNT = 1 FLAGS = () SV = RV(0x3c02b018) at 0x3c0062dc REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x3c011718 SV = PVAV(0x3c0084dc) at 0x3c011718 REFCNT = 2 FLAGS = () IV = 0 NV = 0 ARRAY = 0x3c02a4f0 FILL = 1 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = UNKNOWN(0xff) (0x0) at 0x3c006168 REFCNT = 1 FLAGS = () Elt No. 1 SV = UNKNOWN(0xff) (0x0) at 0x3c006264 REFCNT = 1 FLAGS = ()
Note that the array entries changed from :
SV = NULL(0x0) at 0x3c006168
To:
SV = UNKNOWN(0xff) (0x0) at 0x3c006168


Comment on Re: map a list - segfault
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (14)
As of 2015-07-30 19:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls