[Melbourne-pm] thanks to all

Jacinta Richardson jarich at perltraining.com.au
Thu Sep 18 02:14:15 PDT 2008

Sisyphus wrote:

>> I don't like that shebang line at all.
> The shebang line is not necessary - feel free to remove it. You don't
> need a shebang line to run perl programs on any platform that I'm aware of.

Ah.  How are you running Perl?

If you're using a *nix-style platform and you set your program to be an
executable (chmod a+x hello.pl) and then call it directly ( ./hello.pl ) your
shell will fail to magically guess that it's supposed to be a Perl program.

Sure you can call it indirectly (perl hello.pl) but the shebang line is
absolutely necessary on *nix-style platforms (the Unixes, the BSDs, the Linuxes,
Apple OSX) otherwise.  This is cool because you can call your executable
something without an extension (eg cat) and run it:

	cat *.txt

without having to care what language it's written in or even whether it's a
compiled executable or an interpreted script.

The shebang line is also important for specifying options to Perl that you want
to ensure are used.  For example -w for warnings, -W for Warnings with Pride, -I
for a module path, -T for taint mode, -t for test taint mode.  Otherwise you
have to rely on the caller of your program to pass in the required switches, and
 they won't.

> Perhaps Apache requires the shebang line (I don't know) ... but even if
> that is so, it's not a criticism of perl.

The shebang line is the result of Perl coming from a background where file
extensions were unnecessary.  If you've ever had to try to convince Windows that
 MYOB data files (.pls) aren't WinAmp playlist files (also .pls) or anything
similar; you'd probably appreciate shebang lines more.

All the best,


   ("`-''-/").___..--''"`-._          |  Jacinta Richardson         |
    `6_ 6  )   `-.  (     ).`-.__.`)  |  Perl Training Australia    |
    (_Y_.)'  ._   )  `._ `. ``-..-'   |      +61 3 9354 6001        |
  _..`--'_..-_/  /--'_.' ,'           | contact at perltraining.com.au |
 (il),-''  (li),'  ((!.-'             |   www.perltraining.com.au   |

More information about the Melbourne-pm mailing list