Clear questions and runnable code
get the best and fastest answer
Re: shebang line - foreign to meby toma (Vicar)
|on Dec 30, 2002 at 19:37 UTC||Need Help??|
I never use #!/usr/bin/perl as the perl for
experimenting with new modules or executable scripts.
This version of perl is used by various system scripts and
is the responsibility of the system administrator. Changing modules used by
is very rude to an overloaded system administrator.
Imagine trying to support perl sysadmin scripts on 2000
unix workstations, each with
a different combinations and versions of modules that have
been installed by end users! Also, some workstation
vendors require that you not change this perl if you are
buying certain types of support.
Perl is a great sysadmin tool, so I don't want to make it more difficult to use in this role. Let the sysadmin change hundreds of machines at a time, and then if it breaks it will probably be obvious what went wrong :-).
I always have at least one version of perl in my home directory, and my perl bin directory is ahead in the path of /usr/bin, so I always get my perl. Clever application writers use ExtUtils::MakeMaker as described above. This feature is clearly documented in the pod, and has been since at least 5.005_03.
There is also the problem of the end-of-line break on the #!/usr/bin/perl line. If you really have #!/usr/bin/perl\r\n, the bash shell on linux will report bad interpreter: No such file or directory. Since this problem for the unix user is in the whitespace, it is very hard to find. In that case, it is much better to have nothing at all on the shebang.
So my preferences are to let ExtUtils::MakeMaker do its job, or don't use windows linebreaks, or have no shebang.
It should work perfectly the first time! - toma