Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: How does 'goto LABEL' search for its label? (work-around)

by tye (Sage)
on Jan 17, 2013 at 19:42 UTC ( [id://1013869]=note: print w/replies, xml ) Need Help??


in reply to Re^2: How does 'goto LABEL' search for its label? (call stack)
in thread How does 'goto LABEL' search for its label?

just that without it, the implementation of lexpads would be much simpler and saner.

Yeah, that would have been my best guess. I'm curious about how "much" simplification we are talking about. But I'll go digging in the p5p archives for more details if I find the time and motivation. :)

I wonder if the complications could be avoided by having behavior closer to this pseudo-Perl code:

if( $fatal ) ERR: { ... }

So that the destination for "goto ERR;" would be the start of the lexical block instead of the first line in the lexical block.

It would be nice if a label pointing to the first line of a lexical block could just be moved to point to the start of the lexical block, avoiding the complexity and the need for deprecation. That is:

if( $fatal ) { OK: ... no need to deprecate this ... } if( $fatal ) { my $foo; BAD: ... "goto BAD" from outside this block deprecated ... }

But, if one ends up using a Perl that has the deprecation but doesn't implement my idea, then it should often be relatively easy to rewrite the code to be more like:

... if( $whatever ) { goto ERR; } ... if( $fatal ) { # Used to be "ERR:" here goto ERR; } return ...; ERR: ... code moved from if( $fatal ) ...

- tye        

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (7)
As of 2024-04-23 13:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found