Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
There's more than one way to do things
 
PerlMonks  

Re: path to perl interpreter

by kprasanna_79 (Hermit)
on Sep 29, 2005 at 06:33 UTC ( #495998=note: print w/ replies, xml ) Need Help??


in reply to path to perl interpreter

Hi rkillera,

The $^X variable (in the first reply) displays the first word of the command line you used to start this program. If you started this program by entering its name, the name of the program appears in $^X. If you used the perl command to start this program, $^X contains perl.

The following statement checks to see whether you started this program with the command perl:

if ($^X ne "perl") { print ("You did not use the 'perl' command "); print ("to start this program.\n"); }

So the first reply might not be so useful in your case.

I dont know which platform Your working with. But in unix i usually do this way.

$path = `which perl`; print $path; /usr/bin/perl

If you want to run perl script there is also another way. Put the perl interpreter path in the first line of your program. This is called shebang ling techinically

#!/usr/bin/perl

Run the program like this.

./pgm

This will run from the interpreter you have mentioned in the first line of the program.

-Prasanna.K


Comment on Re: path to perl interpreter
Select or Download Code
Re^2: path to perl interpreter
by rnahi (Curate) on Sep 29, 2005 at 07:36 UTC

    What you say does not agree to the docs and to my practice.

    $ cat whichperl.pl #!/usr/bin/perl printf "operating system: %s\n executable: %s\n", $^O, $^X, ;

    And see the results:

    $ perl whichperl.pl operating system: linux executable: /usr/bin/perl $ chmod +x whichperl.pl $ ./whichperl.pl operating system: linux executable: /usr/bin/perl

    And later, to another OS:

    $ perl whichperl.pl operating system: freebsd executable: /usr/local/bin/perl
      Hi Mahi,

      Why cant you try it in unix machines.Any how good try with linux and freeBSD. But what i tried is with unix HP-UX B.11.11. Might be you check here if u can.

      More over i am fond of reading Perl in 21 days where this doc was described. May be you can check that and put your comments to the author of the book

      Update:-

      Since you are that much confident with your idea i need to give you the result what i got from your code

      perl -le 'print $^X' perl

      May be here according your code unix may performing wrongly. If so put a cc to unix group too apart from 21 days author.

      Prasanna.K

      Edit planetscape - removed link to copyrighted material

        Hi. My nick is rnahi, not "Mhai."

        You are referring to something that looks like copyrighted material with wrong information.

        Have a look at the official docs .

        $^X
        The name used to execute the current copy of Perl, from C's  argv[0] .
        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. Also, most operating systems permit invoking programs that are not in the PATH environment variable, so there is no guarantee that the value of $^X is in PATH.

        kprasanna_79,

        I'm sorry, but did you even try it? Given how easy/fast it is to try what you're about to post, I'd highly suggest it - you seem to be very prone to confidently posting completely wrong information, which suggests to me that you need to find a new source of information. May I recommend the perl interpreter itself?

        $ uname -a HP-UX dessert B.11.11 U 9000/800 1131039648 unlimited-user license $ cat t.pl #! /usr/bin/perl print $^X,"\n"; $ ./t.pl /usr/bin/perl

        Name a platform where this works the way you say it does. I probably have access to it and will test it out. AIX (4 or 5), Sun (2.6 through 2.10), HP (11i, 11.23), HP/ia64 (11.23), Linux on ia32, ia64, amd64, ppc64, s390. Windows on ia32, ia64, or amd64 (although the latter two will take me a couple hours to get, I will call you on it). You pick. You even get to write the script if you want.

      Just to add more information to it:
      $ perl whichperl.pl
      operating system: darwin
       executable: perl
      
      $ /usr/bin/perl whichperl.pl 
      operating system: darwin
       executable: /usr/bin/perl
      
      $ chmod +x whichperl.pl
      
      $ ./whichperl.pl 
      operating system: darwin
       executable: perl
      
      $
      

      $\=~s;s*.*;q^|D9JYJ^^qq^\//\\\///^;ex;print

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://495998]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (14)
As of 2014-04-18 19:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (471 votes), past polls