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

Re^4: 'use subs' causes method to vanish

by gnosti (Hermit)
on Feb 05, 2009 at 23:56 UTC ( #741751=note: print w/replies, xml ) Need Help??

in reply to Re^3: 'use subs' causes method to vanish
in thread 'use subs' causes method to vanish

Hi chromatic,

I'm honored. I agree that it's not a good idea to code using fragile features. In this case, I can't get my updated test case to break whereever I place my 'use subs' statement. I'm curious, because I expect use subs to be part of the extremely beaten-on core of the core of perl. I'm also curious, because I've found such suprising behavior in my bugs that I wondered if it might be worth exploring them more, rather than just fixing or working around them and moving on.

Replies are listed 'Best First'.
Re^5: 'use subs' causes method to vanish
by chromatic (Archbishop) on Feb 06, 2009 at 02:31 UTC

    The subs pragma is fine. The fragile part of the code is the use of barewords.

    You don't see any trouble in your single file because it's a single file. When you start exporting subs and pulling in classes and packages from other files, then life can get complicated. There are some seven to ten cases of bareword disambiguation in the Perl 5 lexer, and almost no one can enumerate all of them; the complexity of those heuristics and the fact that even experts have trouble remembering all of the ways things that go weird make me want to avoid them where possible.

      And here I thought I was in a coding-style backwater 'cos of all the parentheses cluttering my code. I'll look at them with different eyes. Seems like avoiding use of barewords is a good topic for Modern Perl.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://741751]
[marto]: good morning all

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2018-05-24 07:12 GMT
Find Nodes?
    Voting Booth?