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

The #!...\n line at the beginning of an executable file on a Unix system is recognised as telling the kernel that this is a script, to be passed to the interepreter named in the ... part.

If the line is '#!/usr/bin/perl\r\n' (as it would be on a Windows box), the kernel will attempt to find a file called '/usr/bin/perl\r'.

It's a hilarious (but real) solution.

Replies are listed 'Best First'.
Re^3: (OT) Fixing Line Endings
by Melly (Chaplain) on Nov 30, 2006 at 14:56 UTC

    Ah! Tnx. Hmm... couldn't you create a perl script /usr/bin/perl\\r and have that handle the problem?

    Tom Melly, pm@tomandlu.co.uk
      Creating the symlinks is an even lighter-weight way of doing it.
      Hmm... couldn't you create a perl script /usr/bin/perl\\r and have that handle the problem?

      That's essentially what they did. A symbolic link is a UNIX way of saying: "this file is the same as that file over there". They're like Perl references, only for a file system.

      The real problem was getting the symlink command to run from the shell command line: eventually, they gave up, and used perl instead...