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

Re^4: How to import names from a dynamically required module

by choroba (Abbot)
on Oct 03, 2012 at 08:05 UTC ( #997002=note: print w/ replies, xml ) Need Help??


in reply to Re^3: How to import names from a dynamically required module
in thread How to import names from a dynamically required module

string quoting class names is arguably a much better idea
Or, you can use Math::BigInt::->new(8).
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ


Comment on Re^4: How to import names from a dynamically required module
Download Code
Re^5: How to import names from a dynamically required module
by Anonymous Monk on Oct 03, 2012 at 08:55 UTC

    Or you can use Math::BigInt->new, because the odds of there being a BigInt sub in the Math package are astronomical :)

      The odds are small, yes. In my decade plus of Perl usage I've encountered bugs because of this two, perhaps three, times. But each time it took me bloody ages to figure out, which is why I have been trying to avoid this ambiguity in recent work.

      The aliased module is, by the way, an excellent way of avoiding these problems:

      use aliased 'Math::BigInt'; my $seven = BigInt->new(7); # no ambiguity
      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
Re^5: How to import names from a dynamically required module
by tobyink (Abbot) on Oct 03, 2012 at 08:59 UTC

    Indeed. This has the (often welcome) side-effect that the existence of the package is checked at compile-time, and a warning is issued (if warnings are enabled) if the package does not exist.

    With stringy class names (and indeed with the traditional Foo::Bar->new) there is no such check, and Perl just blows up when it can't resolve the method call.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2014-07-26 16:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (178 votes), past polls