jesuashok has asked for the wisdom of the Perl Monks concerning the following question:

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

Replies are listed 'Best First'.
Re: (OT) Perl command line interpolation
by gellyfish (Monsignor) on Jun 15, 2006 at 12:28 UTC

    I don't think you mean 'interpolation'

    People use the #!/usr/bin/env perl so that they can run the program on a variety of systems where they can rely on the presence of 'env' but don't necessarily know where the perl interpreter is located. env is a utility to run a program in a controlled environment, but in this case it is used simply for it's feature that it will find the program in the $PATH. There is no other particular advantage to use it and env is not necessarily available on all Unix-like systems.


Re: (OT) Perl command line interpolation
by jaa (Friar) on Jun 15, 2006 at 12:31 UTC
    This is not really a perl question - the shebang line is used by the shell to determine which command will handle the script.

    env is a binary that will execute your command in a modified environment -- man env is your friend!

    #!/usr/bin/env -i perl # executes perl in an empty environment - no PERL5ENV etc #!/usr/bin/env -i PERL5LIB=~/src perl # executes perl in with only specified PERL5ENV etc
    Using env to run perl might be very slightly slower - but I doubt you will be able to measure the impact.