in reply to How to Find the Script that Called it
Assuming you don't want to explicit pass the script name, you can do what you want using caller.
Update: as per chromatic's comment, I should have queried as to how you are calling the other script. If you are invoking the OS (through backticks, system(), etc.) then Joost is right. A simple solution in that case would be to repackage hello.pl as a package, which would then allow you to directly call the hello subroutines and use the caller method as I suggested before.
Some sample code (obviously I don't know how your files are set up):
run.pl
#!/usr/bin/perl -w use strict; use warnings; use Hello; hello;
Hello.pm
#!/usr/bin/perl -w package Hello; use strict; use warnings; use Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(hello); sub hello { print "hello\n"; my @call_info = caller; print $call_info[1], "\n"; } return 1;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to Find the Script that Called it
by chromatic (Archbishop) on Dec 18, 2008 at 00:29 UTC |