http://www.perlmonks.org?node_id=462743

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

Running on XP I type:
perl program.pl
at the console prompt and get the following
Can't exec /c/apps/pp3.exe at download.pl line 1.
program.pl looks like this:
#!/c/apps/pp3.exe print "Hello\n";
The shebang notation is there for cygwin. pp3.exe is a c program that translates cygwin paths to windows paths before calling the real perl interpreter. So that if I run the script from bash like this:
$ program.pl /c/some/path/orother
then the right path (using windows path separators) gets through to the (activestate) perl interpreter
Which is all good, except (back to the original problem) why is perl.exe even looking at this line? As far as it's concerned it's a comment, right?

I've tried:

c:\Perl\bin\Perl.exe program.pl
and also double clicking program.pl in explorer and perl.exe seems to want to evaluate the shebang notation.

I'm sure this is not the normal perl for windows (or any platform) behaviour???

...More testing...
In fact if I set the shebang to another c program such as args.exe then it runs that instead of the perl interpreter even though perl calls the script directly

I have a bad feeling I'm missing something here...

Matt


Perl is:

perl -v This is perl, v5.8.6 built for MSWin32-x86-multi-thread (with 3 registered patches, see perl -V for more detail) Copyright 1987-2004, Larry Wall Binary build 811 provided by ActiveState Corp. http://www.ActiveState. +com ActiveState is a division of Sophos. Built Dec 13 2004 09:52:01

20050502 Edit by ysth: change pre to code tags