in reply to $^X signature

The output is fine if you run the script as such:
$ perl foo.pl j.a.p.h
But the $^X variable causes it to flub if you run it like this:
$ ./foo.pl ).k.n.p
Bummer, man. Otherwise, great use of the rarely-seen "$^X" special variable! ++

hig

Replies are listed 'Best First'.
Re: Re: $^X signature
by one4k4 (Hermit) on Sep 13, 2001 at 21:14 UTC
      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
Re: Re: $^X signature
by jynx (Priest) on Sep 13, 2001 at 21:40 UTC

    i don't get that problem,

    i'm running perl5.6 on a red hat linux boxen and it tests fine, the only difference being the script must be executable to run:

    # ./foo.pl j.a.p.h
    Do you have seperate versions of perl running in different places? That could cause that behavior (although i'm not certain).

    jynx