Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Module 'use' chains

by bbfu (Curate)
on Aug 10, 2006 at 05:24 UTC ( #566551=note: print w/ replies, xml ) Need Help??


in reply to Module 'use' chains

A simpler method is to just leave off the package line in your Include module. The module automatically starts in the package of the caller, and thus the chain-included modules will automatically export to the correct place.

# test.pl use warnings; use strict; package foo; use Include; funcA(); funcB(); funcC();

# Include.pm use myA; use myB; use myC; 1;

package myA; use base 'Exporter'; our @EXPORT = qw(funcA); sub funcA { warn "funcA"; } 1;

package myB; use base 'Exporter'; our @EXPORT = qw(funcB); sub funcB { warn "funcB"; } 1;

package myC; use base 'Exporter'; our @EXPORT = qw(funcC); sub funcC { warn "funcC"; } 1;

Output:

funcA at myA.pm line 7. funcB at myB.pm line 7. funcC at myC.pm line 7.

bbfu
Black flowers blossom
Fearless on my breath


Comment on Re: Module 'use' chains
Select or Download Code
Re^2: Module 'use' chains
by tilly (Archbishop) on Aug 10, 2006 at 05:33 UTC
    Perl really works like that? (Tests.) Ugh.

    But note that that only works if the package is used only from within one package.

      You're right. I should have tested it more thoroughly.

      bbfu
      Black flowers blossom
      Fearless on my breath

Re^2: Module 'use' chains
by ikegami (Pope) on Aug 10, 2006 at 05:40 UTC

    That will only work the first time use is called. Replace
    use Include;
    with
    BEGIN { do 'Include.pl'; }

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (8)
As of 2014-07-29 09:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (213 votes), past polls