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;
In reply to Re: How to Find the Script that Called it
by kennethk
in thread How to Find the Script that Called it
by bichonfrise74
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |