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. | [reply] |
$ perl -le'print $^X'
/usr/bin/perl
$ cp /usr/bin/perl ~/tmp/
$ ./tmp/perl -le'print $^X'
/home/rafl/tmp/perl
Cheers, Flo | [reply] [d/l] |
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
| [reply] [d/l] |
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.
| [reply] [d/l] [select] |