Daniel Kasak <[EMAIL PROTECTED]> wrote: : I have a main script file, a package in a separate 'package_name.pm' : file and a file 'stuff.pl' that contains functions that both the : main script and the package need to use. : : I've tried adding: : : require "stuff.pl"; : : to both the main script and the package. I can then call functions : in 'stuff.pl' from the main script, but when I try from the package, : I get: : : *** Undefined subroutine &package_name::function_name called at : package_name.pm line 545. : : So Perl is only looking inside the package for functions, it : that right?
Probably. It's hard to tell without the code. : How do I tell it to look outside the package for functions? IMO, the easiest thing to do in the log run is to change "stuff.pl" into a module called (perhaps) "stuff.pm". The you can "use" it. You might end up with something like this: package stuff; require Exporter; @ISA = qw(Exporter); @EXPORT_OK = qw( foo ); sub foo { return 'foo'; } 1; It would be called like this: #!/usr/bin/perl use strict; use warnings; use lib '.'; use stuff 'foo'; print foo(); __END__ Read the docs for Exporter on how to export functions and variables easily. Read perlmod for more info on writing modules. HTH, Charles K. Clarkson -- Mobile Homes Specialist 254 968-8328 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>