This post is a verbatim copy of my answer from StackOverflow, with the example slurped from one of my comments.
require happens at runtime, so in this code:
my @IP=getIP(); require "/tmp/utils/Log.pl"; require "/tmp/utils/Utili.pl";
getIP() has not yet been loaded from the "Utili.pl" file, so it's looking in its own scope for that sub. Move things around so that the subs get loaded before you call them:
require "/tmp/utils/Log.pl"; require "/tmp/utils/Utili.pl"; my @IP=getIP();
Here's an example. require returns 1 on success:
perl -E 'say 5; say require Data::Dumper' 5 1
update: Correction: as choroba points out below, require returns whatever comes last in the module on first pass, then just returns 1 on subsequent calls.
In reply to Re: Need help in accessing subroutines in perl scripts in perl modules.
by stevieb
in thread Need help in accessing subroutines in perl scripts in perl modules.
by srikanthp1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |