Can't run Perl scripts in Leopard

Joined
May 9, 2008
Messages
5
Reaction score
0
Points
1
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.
 
Joined
Mar 17, 2008
Messages
6,879
Reaction score
191
Points
63
Location
Tucson, AZ
Your Mac's Specs
Way... way too many specs to list.
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
 
OP
M
Joined
May 9, 2008
Messages
5
Reaction score
0
Points
1
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?)?
 
Joined
Mar 17, 2008
Messages
6,879
Reaction score
191
Points
63
Location
Tucson, AZ
Your Mac's Specs
Way... way too many specs to list.
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
 
OP
M
Joined
May 9, 2008
Messages
5
Reaction score
0
Points
1
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
 

Shop Amazon


Shop for your Apple, Mac, iPhone and other computer products on Amazon.
We are a participant in the Amazon Services LLC Associates Program, an affiliate program designed to provide a means for us to earn fees by linking to Amazon and affiliated sites.
Top