All subroutines are in a package. Because the required file does not declare its own package, the subroutines in that file will end up in whatever package require was called from. In this case package B. But the way require works, a given file only ever gets required once, unless you explicitly remove its name from the %INC hash. This means that you can't call that subroutine directly from A.
In your specific situation one way to get around the problem is to make B export that subroutine as follows:
or something like that. Either way, that require standard.pl won't do anything when you call it from package A because it's already been required from package B.package B; require Exporter; our @ISA = 'Exporter'; our @EXPORT = qw(do_something);
In reply to Re: Burned by 'require'?
by Errto
in thread Burned by 'require'?
by ptum
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |