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

    Do you mean if you use do? If not, can you show an example?