Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

path to perl interpreter

by rkillera (Novice)
on Sep 29, 2005 at 06:02 UTC ( #495992=perlquestion: print w/replies, xml ) Need Help??
rkillera has asked for the wisdom of the Perl Monks concerning the following question:

Hello everyone, Suppose a user runs a perl script in the following way: /home/userx/bin/perl Inside the script, how can I find the path of the perl interpreter (/home/userx/bin/perl) in order to launch another script? I hope this is clear enough

Replies are listed 'Best First'.
Re: path to perl interpreter
by rnahi (Curate) on Sep 29, 2005 at 06:06 UTC

    The variable $^X holds that information.

    $ perl -le 'print $^X' /usr/bin/perl

    See perlvar

Re: path to perl interpreter
by kprasanna_79 (Hermit) on Sep 29, 2005 at 06:33 UTC
    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


    Run the program like this.


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


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

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

      And see the results:

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

      And later, to another OS:

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

        A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://495992]
Approved by tomazos
Front-paged by dbwiz
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (10)
As of 2018-10-16 16:28 GMT
Find Nodes?
    Voting Booth?
    When I need money for a bigger acquisition, I usually ...

    Results (86 votes). Check out past polls.