Perhaps, just perhaps, it's something to do with my Unix setup. I've got a box running HP Unix (blech), with the
perl executable in
/opt/perl5/bin/.
On that machine, I wrote this script:
#!/opt/perl5/bin/perl -w
print $^X;
When I start it using the
perl command, it prints
perl. When I start it using "./", I get
/opt/perl5/bin/perl
Intriguing. Makes me want to research it, just a bit more. I'd ++ you again if I could, just for giving me something to do today! :)
Update: I looked in O'Reilly's "Learning the Korn Shell", and found the answer. (At least in the Korn shell)when you invoke Perl by using the
perl command, the shell searches your
$PATH, finds
perl in there somewhere, and executes just that command. When you invoke a script using the "./" method, the shell grabs the shebang line, and uses that instead of searching the
$PATH first. I guess it's really basic Unix (or Korn shell?) stuff, but it was interesting to figure out!
higle