On 3 Sep, Hans van den Boogert wrote: > I'm trying to learn some Perl. I found an on-line book which is Unix > biased, but the scripts all start with #!/usr/local/bin/perl (which makes > sense if you have compiled and installed it yourself). However, on my > Debian system Perl was of course put in /usr/bin/perl. So how can I write a > Perl script that be executed on a variety of systems (Unix/Linux/DOS)?? > > -- a somebody who last programmed in BASIC back in '84. (Please don't > laugh. I was young and my teacher made me to). > >
One can usually be reasonably sure (at least more certain than of the location of the perl executable...) that /bin/sh exists... That is if you're on a Unix system (yes, I count Linux as Unix,tho it ain't Unix (tm) (if it walks like a duck etc...)) Use this incantation at the top of your files instead (will start the file as a sh-script that starts perl (as found by the PATH-variable) on the file itself... #!/bin/sh #! -*-perl-*- eval 'exec perl -x -S $0 ${1:"$@"}' if 0; To automatically start start perl scripts on a WinDOS machine you usually connect the file suffix you use (.pl) with the Perl interpreter (dunno exactly how) AFAIK there's no support for the hashbang line. You can also run a little script on your perl scripts that transforms them into a .bat (IIRC) file that can be run from anywhere. Will be interesting to see what happens with Windows new scripting host (if that was what it was called (teflon coated memory...:-)) On a pure DOS system? I have no idea... Could probably do the conversion to .bat routine described above... On a Mac you save the scripts as either a droplet or a freestanding exe (big) from the MacPerl application (supports the hashbang line as far as it reads the switches set there) HTH, /Michael -- | Linux: Turn on...Tune in...Fork out... | | Michael Tempsch, member of Ballistic Wizards, TIP#088, POG#130, PPIG#11 | | [EMAIL PROTECTED]|hotmail.com] [EMAIL PROTECTED] | | Cell.Phone:+46 705487554 URL:http://www.dtek.chalmers.se/%7Ed1temp |