Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^5: Stupid question (mortalization)

by tye (Sage)
on Apr 14, 2012 at 15:46 UTC ( [id://965069]=note: print w/replies, xml ) Need Help??

in reply to Re^4: Stupid question (heisenbugs)
in thread Stupid question

The error has something to do with lack of ref counting of the stack.

Well, that is asserted in but no justification or even discussion of that assertion is apparent or even linked from it and I find the assertion not credible. Items on the stack in Perl are still ref-counted, just somewhat differently. There may be a fundamental flaw in this difference but I have not heard it described and it is not apparent to me.

If you run into some actual discussion or even a description that is not ridiculously vague, please point such out.

- tye        

Replies are listed 'Best First'.
Re^6: Stupid question (mortalization)
by runrig (Abbot) on May 11, 2012 at 23:52 UTC
    Seems like there are just bugs related to altering function arguments, perhaps when they also refer to more global variables, and maybe especially @ARGV. E.g. (copied and modified from bizarre Carp - also I posted a patch in that thread):
    use Carp; Main(@ARGV); sub Main { my $first = shift @ARGV; $ARGV[0] = [qw(1 2 3)]; confess "Rubbish"; exit; }

    I get different results on different versions of perl (tested on 5.8.4, 5.8.8, and 5.14.1). And different results when I comment out the assignment to $ARGV[0].

    But passing @ARGV to Main() and then modifying @ARGV (and Getopt::* modules modify @ARGV by default -- so yes @_ should be copied and parsed instead) seems to be a bad thing (bad in that it triggers bugs in perl/Carp, not that you shouldn't be allowed to do it and perl should blow up).

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2024-04-13 08:34 GMT
Find Nodes?
    Voting Booth?

    No recent polls found