in reply to portability!

Perl is certainly far more portable than anything else I've come across. Some years ago I did quite a bit of work in VMS 5.3 (I think, it's been a while) and the same scripts from the VAX would often run completely unchanged on my Intel box under DOS, NT and LINUX (various releases of Perl 4). I did have to make some adjustments (binmode under DOS, directory string separators etc.) but very little compared to porting C. The byte order template characters in unpack were particularly handy! It's also likely that many of the minor difficulties have been removed in newer Perls (though I haven't checked).

Replies are listed 'Best First'.
RE: RE: portability!
by Fastolfe (Vicar) on Oct 13, 2000 at 21:50 UTC
    Note that incompatibilities such as these are often the result of someone making the assumption that the script will only be run on the platform of choice. If you plan ahead, you can use variables like $^O to determine your operating system, and use that information to select an appropriate directory separator. Things like binmode should be used across the board if you truly want your scripts to be portable across OS's. It's simply a "no-op" under Unix.

    Also note that Perl functions like open and system typically accept Unix-style slashes (/) for specifying path names when opening files or executing programs. Unfortunately (and this may depend on the syntax of the system/exec call), Win2k may not follow this convention.

    But basically the point of my post is that you can write Perl code that is totally portable, so long as you are aware of OS-specific conventions and code to accomodate, and don't make bad assumptions about your environment. Otherwise you may end up having to do some minor tweaks to "port" your script from one OS to another.

      Of course you are quite right, and to some extent I did these things, but there was some difficulty in getting a good Perl (version > 3) for VMS at that time, and for reasons I won't get in to we could not compile Perl ourselves... I guess that gets back to the earlier point on having similar Perls on each platform.

      As a testament to Perl, in some of the VAX work Perl was used to replace Fortran code for translating Fortran binary data structures to ASCII for dumping to PCs, and it was a heck of a lot easier to use than Fortran!