[EMAIL PROTECTED] wrote:
Is it possible for a module to refer to its calling script? For example, if I create a module called MyModule.pm, and use it in a script MyScript.pl by saying "use MyModule;", is it possible to refer to the calling script (MyScript.pl in this case) and get some information about it during the process of writing the module (MyModule.pm in this case)? This way, I want to make the behaviour of the module flexible based on where it is called.
Modules are not called; they are loaded. Subroutines in modules are called. Unless requested, I shan't get into the difference between compiling and running, yet alone modules, packages, and objects.
You can refer to the script name with $0. You could also do something like this:
# In the script BEGIN { our $ScriptName = 'myscript'; our @ModuleNames = (); } our @ModuleNames; use mymodule; __END__ # In each module our @ModuleNames; push @ModuleNames, 'this_module_name'; # Alternate our @ModuleNames; use File::Basename; push @ModuleNames, basename( __FILE__ ); 1; # All modules must return a non-false value __END__ -- Just my 0.00000002 million dollars worth, --- Shawn "Probability is now one. Any problems that are left are your own." SS Heart of Gold, _The Hitchhiker's Guide to the Galaxy_ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>