Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^3: This could have DWIM better

by Aristotle (Chancellor)
on Mar 01, 2006 at 18:22 UTC ( #533721=note: print w/replies, xml ) Need Help??


in reply to Re^2: This could have DWIM better
in thread This could have DWIM better

Quoth perlsub:

Library modules should not in general export built-in names like open or chdir as part of their default @EXPORT list, because these may sneak into someone elseís namespace and change the semantics unexpectedly. Instead, if the module adds that name to @EXPORT_OK, then itís possible for a user to import the name explicitly, but not implicitly. That is, they could say

use Module 'open';

and it would import the open override. But if they said

use Module;

they would get the default imports without overrides.

The foregoing mechanism for overriding built-in is restricted, quite deliberately, to the package that requests the import. There is a second method that is sometimes applicable when you wish to override a built-in everywhere, without regard to namespace boundaries. This is achieved by importing a sub into the special namespace CORE::GLOBAL::.

Emphasis mine.

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^4: This could have DWIM better
by demerphq (Chancellor) on Mar 02, 2006 at 09:29 UTC

    Ah, thanks for the clarification. I misremembered this. Am I correct that this doesnt apply to prototypeless routines like print?

    ---
    $world=~s/war/peace/g

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://533721]
help
Chatterbox?
[Lady_Aleena]: I don't want to have to do: alpha_menu($hash, undef, $type);
[Lady_Aleena]: Or what Discipulus said.
[shmem]: Lady_Aleena: geany supports ctags.
[Discipulus]: a good compromise can be my ($need, $opts_ref) = @_ a scalar and an hash reference
[Discipulus]: see you monks!
[Lady_Aleena]: shmem, let me get this sub rewritten, then I will look into how to use ctags in geany. Deal? 8)
[shmem]: Discipulus: yeah, that might eventually prepare the path for OO ;-)
[Lady_Aleena]: See you, Discipulus.
[shmem]: Lady_Aleena: that's up to you. I only wanted to show you a path that might be more comforting than command line grep ;-)
[Lady_Aleena]: shmem, I don't think any of my modules could be converted to OO. They are too procedural.

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2017-04-27 12:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I'm a fool:











    Results (506 votes). Check out past polls.