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. | [reply] [d/l] |
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!
| [reply] |