Mac Forums

Mac Forums (http://www.mac-forums.com/forums/)
-   OS X - Development and Darwin (http://www.mac-forums.com/forums/os-x-development-darwin/)
-   -   Can't run Perl scripts in Leopard (http://www.mac-forums.com/forums/os-x-development-darwin/107889-cant-run-perl-scripts-leopard.html)

mscoxoh 05-10-2008 07:59 AM

Can't run Perl scripts in Leopard
 
I can't get Perl scripts in my path to properly run under Mac OS X (10.5.2). I'm using Smultron to edit the files, and have also taken them into nano via Terminal and saved both as DOS and Mac formats. When I save as DOS, I get this when I run the file:

/usr/bin/perl^M: bad interpreter: No such file or directory

I assume it's having problem interpreting the DOS CR/LF character and shows "^M" as a result. When I save in "Mac" format, the script does nothing (not even an error) when I run it. If I cat the Mac formatted script, it doesn't display properly:

$ cat perlscript.pl
$ FG,SWITCHCFG); shutports/ig) {(.+)/ig) {

(You're seeing a tiny portion of the script there; not even the end of it - but that's all it shows.) If I save in the DOS format, I can workaround the problem by running it as "perl path/scriptname.pl"; this eliminates the misinterpretation of !#user/bin/perl^M above. What am I doing wrong? Can I not run perl scripts that are in my path without typing the longhand "perl pathlist/filename"? Thanks.

Dysfunction 05-10-2008 12:07 PM

Edit:

Wait, you're saying that changing it to mac format removes that? Interesting, I've never bothered setting any file type within nano on the mac. Now I'm going to have to go try that out.

Yep, sure does. Infuriating too. Tried concatenating the file to another file, figured std out might resolve it, but same problem. Also tried editing it and saving it in textedit, that didn't work.

Actually, saving it as a mac format will not execute on my system even if I do a perl ./perlscript while DOS file formats do. I even tried editing the file in vi.

So I opened it in textwrangler, went to edit > document options and saw that it had a windows line ending (CRLF) changed it to Unix (LF) and saved. Had to chmod it, but now it works again


Lesson learned today, I'm going to continue to ignore the option to save as either DOS or Mac formatting in nano :D

mscoxoh 05-10-2008 02:47 PM

Can't run perl scripts in Leopard
 
Yes, I tried using Unix LF in Smultron and it's working. Curious about nano, though. It defaults to "mac" format; can one not edit Perl scripts in nano (without using DOS format and running it longhand?)?

Dysfunction 05-10-2008 02:48 PM

I have a feeling 'mac format' refers to pre-os x mac. If I save without selecting 'mac format' it's in standard unix formatting (LF) and works just fine.

That all being said, I normally use vi anyway, since it's on every system I ever touch

mscoxoh 05-10-2008 02:56 PM

Editing perl with nano
 
Ahhh... that makes sense. The files I'm working with were created on a DOS/Windows system and copied to my new Mac. Nano must've maintained the existing DOS LFs, and only offered Mac as the other format. (Converting it to a native, or Unix, format was not an option I saw within nano.) I'd probably be OK working with new files or files that Smultron has saved already with Unix LF. Thanks.

P.S. vi? I can if I have to, but I try not to have to! :D


All times are GMT -4. The time now is 01:59 AM.

Powered by vBulletin
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.