in reply to Re: confused path
in thread confused path
thanks for reply. Let me explain what happened in detail:
I need to transfer a simulation package from one internal network to another internal network in company. Though both networks use linux, there are some differences between them, such as tools setting etc.
here is a piece of code from one script (I did some substitution to make things simple):
(1) use FindBin;
(2) use lib $FindBin::Bin;
(3) use dbPrjPath; ## company internal package
(4) my $dir = dbPrjPath::prjPath(); #find project path
(5) my $prog = $FindBin::Script;
(6) exec("$prog @ARGV");
above is the code. suppose code above is prog1. In line (4) a new project path is got. In this new project path there is a same script named prog1. The total code will get new project path and run the script in that path with the same script name "prog1" as line (6) indicates, i.e, runs B/prog1. This works well in original system, but in the other system, code in line (6) always runs A/prog1 so it is a infinite loop, which is a strange thing to me.
In order to trace it, I insert a code as this between line (5) and (6) as
(5.5) system("which $prog") and it shows B/prog1. I then inserted some debug info to make sure exec("$prog") runs itself. This confused me. so What happened? I confused...