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
In reply to Re: Module 'use' chains
by bbfu
in thread Module 'use' chains
by Vaati
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |