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


in reply to Re: (OT) Fixing Line Endings
in thread (OT) Fixing Line Endings

A Perl program that is created on Windows will have Windows line end characters (i.e. CR/LR or \015\012). If you upload that to a Unix server without translating the line endings then your shebang line will look like this:

#!/usr/bin/perl\r\n

The \n is the line end character for Unix, so that's not a problem. But some Unix shells will look for a program called /usr/bin/perl\r and, usually, won't find it.

As a couple of us have suggested, adding an option to the shebang line solves the problem as the shebang line will then look like this:

#!/usr/bin/perl -w\r\n

The shell parses the command name (/usr/bin/perl) out of that and passes the rest of it (-w\r) to the Perl interpreter as options. Perl is cleverer than the shell and will handle both kinds of line endings.

--
<http://dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg

Replies are listed 'Best First'.
Re^3: (OT) Fixing Line Endings
by jgamble (Pilgrim) on Dec 01, 2006 at 16:31 UTC

    A Perl program that is created on Windows will have Windows line end characters (i.e. CR/LR or \015\012).

    Although, just for informational purposes, it's important to note that you don't have to create files with the \r\n ending. I've been creating all of my files with \n endings for years on Windows, and it's saved me a lot of grief, particularly when ftp-ing files without worrying about setting text mode. The text editors that I've been using are jedit and vim; I'm sure there are others that can do this.

Re^3: (OT) Fixing Line Endings
by sgt (Deacon) on Dec 01, 2006 at 22:24 UTC

    actually she-bang is a kernel thing ...so you have to fix the broken kernel ...which I would not call un*x

    --stephan