in reply to Re: How to determine the path to the Perl binary that executed your program?
in thread How to determine the path to the Perl binary that executed your program?

That gets its value from the config file. So that would fail for the same reasons given above for using Config.pm. After compilation, the Perl binary could be moved or renamed.
  • Comment on Re^2: How to determine the path to the Perl binary that executed your program?

Replies are listed 'Best First'.
Re^3: How to determine the path to the Perl binary that executed your program?
by rafl (Friar) on Sep 28, 2006 at 19:43 UTC

    Actually, it doesn't.

    $ perl -le'print $^X' /usr/bin/perl $ cp /usr/bin/perl ~/tmp/ $ ./tmp/perl -le'print $^X' /home/rafl/tmp/perl

    Cheers, Flo

      according to perldoc perlvar,
      Depending on the host operating system, the value of $^X may be a relative or absolute pathname of the perl program file, or may be the string used to invoke perl but not the pathname of the perl program file.
      and indeed,
      osx% perl -le'print $^X' perl
Re^3: How to determine the path to the Perl binary that executed your program?
by cephas (Pilgrim) on Sep 28, 2006 at 19:46 UTC
    No, $^X comes from C's argv[0]. If perl was in the path, then it may just be "perl", in which case File::Which should track down the correct version. Or it could be a relative path, which can be resolved to a full path.