[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Execing perl?
From: |
Paul D. Smith |
Subject: |
Execing perl? |
Date: |
11 Jul 2001 14:50:19 -0400 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
OK, this isn't a bug, and it's also something that you'd _think_ would
be so obvious it'd be right at the top of all the FAQs, etc... but I
can't find it, nor can I figure it out.
The Perl docs (perlrun) say you can use this stanza to write a perl
script when you don't know where the perl runtime will be; something
like:
#!/bin/sh -- # -*- perl -*-
eval 'exec perl -wS $0 ${1+"$@"}'
if $running_under_some_shell;
This doesn't work if bash is /bin/sh; I get this error:
/bin/sh: -- # -*-perl-*-: unrecognized option
(ditto if I use /bin/bash instead). This does work with other Bourne
shells, though, such as Solaris' /bin/sh.
If I leave out the -- and just use the comment, I get this error:
# -*-perl-*-: # -*-perl-*-: No such file or directory
(it doesn't ignore the comment). Even moving this past the "normal"
32-char boundary doesn't help.
However, if I remove the extra stuff from the first line, then _Perl_
screws up, due to this little gem (from perlrun):
If the #! line does not contain the word "perl", the pro-
gram named after the #! is executed instead of the Perl
interpreter. This is slightly bizarre, but it helps peo-
ple on machines that don't do #!, because they can tell a
program that their SHELL is /usr/bin/perl, and Perl will
then dispatch the program to the correct interpreter for
them.
As a result, /bin/sh runs Perl, which turns right around and tries to
run /bin/sh, I guess with the options it got (-wS etc. etc.) and I get
this:
/bin/sh: -w: unrecognized option
_Surely_ someone has solved this problem!
--
-------------------------------------------------------------------------------
Paul D. Smith <psmith@baynetworks.com> HASMAT--HA Software Methods & Tools
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
-------------------------------------------------------------------------------
These are my opinions---Nortel Networks takes no responsibility for them.