Unix does the same thing on ttys in canonical mode. C<\015\012>
is commonly referred to as CRLF.
-A common cause of unportable programs is the misuse of chop() to trim
-newlines:
-
- # XXX UNPORTABLE!
- while(<FILE>) {
- chop;
- @array = split(/:/);
- #...
- }
-
-You can get away with this on Unix and Mac OS (they have a single
-character end-of-line), but the same program will break under DOSish
-perls because you're only chop()ing half the end-of-line. Instead,
-chomp() should be used to trim newlines. The L<Dunce::Files> module
-can help audit your code for misuses of chop().
+To trim trailing newlines from text lines use chomp(). With default
+settings that function looks for a trailing C<\n> character and thus
+trims in a portable way.
When dealing with binary files (or text files in binary mode) be sure
to explicitly set $/ to the appropriate value for your file format
and even on systems where it might be tolerated, some utilities
might become confused by such whitespace.
-Many systems (DOS, VMS) cannot have more than one C<.> in their filenames.
+Many systems (DOS, VMS ODS-2) cannot have more than one C<.> in their
+filenames.
Don't assume C<< > >> won't be the first character of a filename.
Always use C<< < >> explicitly to open a file for reading, or even
VMS the C<%ENV> table is much more than a per-process key-value string
table.
+On VMS, some entries in the %ENV hash are dynamically created when
+their key is used on a read if they did not previously exist. The
+values for C<$ENV{HOME}>, C<$ENV{TERM}>, C<$ENV{HOME}>, and C<$ENV{USER}>,
+are known to be dynamically generated. The specific names that are
+dynamically generated may vary with the version of the C library on VMS,
+and more may exist than is documented.
+
+On VMS by default, changes to the %ENV hash are persistent after the process
+exits. This can cause unintended issues.
+
Don't count on signals or C<%SIG> for anything.
Don't count on filename globbing. Use C<opendir>, C<readdir>, and
Do not assume anything about the ordering of the characters.
The lowercase letters may come before or after the uppercase letters;
-the lowercase and uppercase may be interlaced so that both `a' and `A'
-come before `b'; the accented and other international characters may
-be interlaced so that E<auml> comes before `b'.
+the lowercase and uppercase may be interlaced so that both "a" and "A"
+come before "b"; the accented and other international characters may
+be interlaced so that E<auml> comes before "b".
=head2 Internationalisation
later. If the bytes are native 8-bit bytes, you can use the C<bytes>
pragma. If the bytes are in a string (regular expression being a
curious string), you can often also use the C<\xHH> notation instead
-of embedding the bytes as-is. If they are in some particular legacy
-encoding (ether single-byte or something more complicated), you can
-use the C<encoding> pragma. (If you want to write your code in UTF-8,
-you can use either the C<utf8> pragma, or the C<encoding> pragma.)
-The C<bytes> and C<utf8> pragmata are available since Perl 5.6.0, and
-the C<encoding> pragma since Perl 5.8.0.
+of embedding the bytes as-is. (If you want to write your code in UTF-8,
+you can use the C<utf8>.) The C<bytes> and C<utf8> pragmata are
+available since Perl 5.6.0.
=head2 System Resources
=head2 VMS
Perl on VMS is discussed in L<perlvms> in the perl distribution.
+
+The official name of VMS as of this writing is OpenVMS.
+
Perl on VMS can accept either VMS- or Unix-style file
specifications as in either of the following:
Do take care with C<$ ASSIGN/nolog/user SYS$COMMAND: SYS$INPUT> if your
perl-in-DCL script expects to do things like C<< $read = <STDIN>; >>.
-Filenames are in the format "name.extension;version". The maximum
-length for filenames is 39 characters, and the maximum length for
+The VMS operating system has two filesystems, known as ODS-2 and ODS-5.
+
+For ODS-2, filenames are in the format "name.extension;version". The
+maximum length for filenames is 39 characters, and the maximum length for
extensions is also 39 characters. Version is a number from 1 to
32767. Valid characters are C</[A-Z0-9$_-]/>.
-VMS's RMS filesystem is case-insensitive and does not preserve case.
-C<readdir> returns lowercased filenames, but specifying a file for
-opening remains case-insensitive. Files without extensions have a
-trailing period on them, so doing a C<readdir> with a file named F<A.;5>
-will return F<a.> (though that file could be opened with
+The ODS-2 filesystem is case-insensitive and does not preserve case.
+Perl simulates this by converting all filenames to lowercase internally.
+
+For ODS-5, filenames may have almost any character in them and can include
+Unicode characters. Characters that could be misinterpreted by the DCL
+shell or file parsing utilities need to be prefixed with the C<^>
+character, or replaced with hexadecimal characters prefixed with the
+C<^> character. Such prefixing is only needed with the pathnames are
+in VMS format in applications. Programs that can accept the UNIX format
+of pathnames do not need the escape characters. The maximum length for
+filenames is 255 characters. The ODS-5 file system can handle both
+a case preserved and a case sensitive mode.
+
+ODS-5 is only available on the OpenVMS for 64 bit platforms.
+
+Support for the extended file specifications is being done as optional
+settings to preserve backward compatibility with Perl scripts that
+assume the previous VMS limitations.
+
+In general routines on VMS that get a UNIX format file specification
+should return it in a UNIX format, and when they get a VMS format
+specification they should return a VMS format unless they are documented
+to do a conversion.
+
+For routines that generate return a file specification, VMS allows setting
+if the C library which Perl is built on if it will be returned in VMS
+format or in UNIX format.
+
+With the ODS-2 file system, there is not much difference in syntax of
+filenames without paths for VMS or UNIX. With the extended character
+set available with ODS-5 there can be a significant difference.
+
+Because of this, existing Perl scripts written for VMS were sometimes
+treating VMS and UNIX filenames interchangeably. Without the extended
+character set enabled, this behavior will mostly be maintained for
+backwards compatibility.
+
+When extended characters are enabled with ODS-5, the handling of
+UNIX formatted file specifications is to that of a UNIX system.
+
+VMS file specifications without extensions have a trailing dot. An
+equivalent UNIX file specification should not show the trailing dot.
+
+The result of all of this, is that for VMS, for portable scripts, you
+can not depend on Perl to present the filenames in lowercase, to be
+case sensitive, and that the filenames could be returned in either
+UNIX or VMS format.
+
+And if a routine returns a file specification, unless it is intended to
+convert it, it should return it in the same format as it found it.
+
+C<readdir> by default has traditionally returned lowercased filenames.
+When the ODS-5 support is enabled, it will return the exact case of the
+filename on the disk.
+
+Files without extensions have a trailing period on them, so doing a
+C<readdir> in the default mode with a file named F<A.;5> will
+return F<a.> when VMS is (though that file could be opened with
C<open(FH, 'A')>).
+With support for extended file specifications and if C<opendir> was
+given a UNIX format directory, a file named F<A.;5> will return F<a>
+and optionally in the exact case on the disk. When C<opendir> is given
+a VMS format directory, then C<readdir> should return F<a.>, and
+again with the optionally the exact case.
+
RMS had an eight level limit on directory depths from any rooted logical
-(allowing 16 levels overall) prior to VMS 7.2. Hence
-C<PERL_ROOT:[LIB.2.3.4.5.6.7.8]> is a valid directory specification but
-C<PERL_ROOT:[LIB.2.3.4.5.6.7.8.9]> is not. F<Makefile.PL> authors might
-have to take this into account, but at least they can refer to the former
-as C</PERL_ROOT/lib/2/3/4/5/6/7/8/>.
+(allowing 16 levels overall) prior to VMS 7.2, and even with versions of
+VMS on VAX up through 7.3. Hence C<PERL_ROOT:[LIB.2.3.4.5.6.7.8]> is a
+valid directory specification but C<PERL_ROOT:[LIB.2.3.4.5.6.7.8.9]> is
+not. F<Makefile.PL> authors might have to take this into account, but at
+least they can refer to the former as C</PERL_ROOT/lib/2/3/4/5/6/7/8/>.
+
+Pumpkings and module integrators can easily see whether files with too many
+directory levels have snuck into the core by running the following in the
+top-level source directory:
+
+ $ perl -ne "$_=~s/\s+.*//; print if scalar(split /\//) > 8;" < MANIFEST
+
The VMS::Filespec module, which gets installed as part of the build
process on VMS, is a pure Perl module that can easily be installed on
non-VMS platforms and can be helpful for conversions to and from RMS
-native formats.
+native formats. It is also now the only way that you should check to
+see if VMS is in a case sensitive mode.
What C<\n> represents depends on the type of file opened. It usually
represents C<\012> but it could also be C<\015>, C<\012>, C<\015\012>,
TCP/IP stacks are optional on VMS, so socket routines might not be
implemented. UDP sockets may not be supported.
+The TCP/IP library support for all current versions of VMS is dynamically
+loaded if present, so even if the routines are configured, they may
+return a status indicating that they are not implemented.
+
The value of C<$^O> on OpenVMS is "VMS". To determine the architecture
that you are running on without resorting to loading all of C<%Config>
you can examine the content of the C<@INC> array like so:
} elsif (grep(/VMS_VAX/, @INC)) {
print "I'm on VAX!\n";
+ } elsif (grep(/VMS_IA64/, @INC)) {
+ print "I'm on IA64!\n";
+
} else {
print "I'm not so sure about where $^O is...\n";
}
+In general, the significant differences should only be if Perl is running
+on VMS_VAX or one of the 64 bit OpenVMS platforms.
+
On VMS, perl determines the UTC offset from the C<SYS$TIMEZONE_DIFFERENTIAL>
logical name. Although the VMS epoch began at 17-NOV-1858 00:00:00.00,
calls to C<localtime> are adjusted to count offsets from
=item *
-vmsperl list, majordomo@perl.org
-
-(Put the words C<subscribe vmsperl> in message body.)
+vmsperl list, vmsperl-subscribe@perl.org
=item *
delimiting character, VOS files, directories, or links whose names
contain a slash character cannot be processed. Such files must be
renamed before they can be processed by Perl. Note that VOS limits
-file names to 32 or fewer characters.
+file names to 32 or fewer characters, file names cannot start with a
+C<-> character, or contain any character matching C<< tr/ !%&'()*+;<>?// >>
The value of C<$^O> on VOS is "VOS". To determine the architecture that
you are running on without resorting to loading all of C<%Config> you
=over 8
-=item -X FILEHANDLE
-
-=item -X EXPR
-
=item -X
C<-r>, C<-w>, and C<-x> have a limited meaning only; directories
and applications are executable, and there are no uid/gid
considerations. C<-o> is not supported. (S<Mac OS>)
+C<-w> only inspects the read-only file attribute (FILE_ATTRIBUTE_READONLY),
+which determines whether the directory can be deleted, not whether it can
+be written to. Directories always have read and write access unless denied
+by discretionary access control lists (DACLs). (S<Win32>)
+
C<-r>, C<-w>, C<-x>, and C<-o> tell whether the file is accessible,
which may not reflect UIC-based file protections. (VMS)
C<-x> (or C<-X>) determine if a file has an executable file type.
(S<RISC OS>)
-=item binmode FILEHANDLE
+=item atan2
+
+Due to issues with various CPUs, math libraries, compilers, and standards,
+results for C<atan2()> may vary depending on any combination of the above.
+Perl attempts to conform to the Open Group/IEEE standards for the results
+returned from C<atan2()>, but cannot force the issue if the system Perl is
+run on does not allow it. (Tru64, HP-UX 10.20)
+
+The current version of the standards for C<atan2()> is available at
+L<http://www.opengroup.org/onlinepubs/009695399/functions/atan2.html>.
+
+=item binmode
Meaningless. (S<Mac OS>, S<RISC OS>)
The value returned by C<tell> may be affected after the call, and
the filehandle may be flushed. (Win32)
-=item chmod LIST
+=item chmod
Only limited meaning. Disabling/enabling write permission is mapped to
locking/unlocking the file. (S<Mac OS>)
The actual permissions set depend on the value of the C<CYGWIN>
in the SYSTEM environment settings. (Cygwin)
-=item chown LIST
+=item chown
Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
A little funky, because VOS's notion of ownership is a little funky (VOS).
-=item chroot FILENAME
-
=item chroot
Not implemented. (S<Mac OS>, Win32, VMS, S<Plan 9>, S<RISC OS>, VOS, VM/ESA)
-=item crypt PLAINTEXT,SALT
+=item crypt
May not be available if library or source was not provided when building
perl. (Win32)
-=item dbmclose HASH
+=item dbmclose
Not implemented. (VMS, S<Plan 9>, VOS)
-=item dbmopen HASH,DBNAME,MODE
+=item dbmopen
Not implemented. (VMS, S<Plan 9>, VOS)
-=item dump LABEL
+=item dump
Not useful. (S<Mac OS>, S<RISC OS>)
-Not implemented. (Win32)
+Not supported. (Cygwin, Win32)
Invokes VMS debugger. (VMS)
-=item exec LIST
+=item exec
Not implemented. (S<Mac OS>)
Does not automatically flush output handles on some platforms.
(SunOS, Solaris, HP-UX)
-=item exit EXPR
-
=item exit
Emulates UNIX exit() (which considers C<exit 1> to indicate an error) by
with the pragma C<use vmsish 'exit'>. As with the CRTL's exit()
function, C<exit 0> is also mapped to an exit status of SS$_NORMAL
(C<1>); this mapping cannot be overridden. Any other argument to exit()
-is used directly as Perl's exit status. (VMS)
+is used directly as Perl's exit status. On VMS, unless the future
+POSIX_EXIT mode is enabled, the exit code should always be a valid
+VMS exit code and not a generic number. When the POSIX_EXIT mode is
+enabled, a generic number will be encoded in a method compatible with
+the C library _POSIX_EXIT macro so that it can be decoded by other
+programs, particularly ones written in C, like the GNV package. (VMS)
-=item fcntl FILEHANDLE,FUNCTION,SCALAR
+=item fcntl
-Not implemented. (Win32, VMS)
+Not implemented. (Win32)
+Some functions available based on the version of VMS. (VMS)
-=item flock FILEHANDLE,OPERATION
+=item flock
Not implemented (S<Mac OS>, VMS, S<RISC OS>, VOS).
Not implemented. (S<Mac OS>, S<RISC OS>)
-=item getpgrp PID
+=item getpgrp
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
Not implemented. (S<Mac OS>, Win32, S<RISC OS>)
-=item getpriority WHICH,WHO
+=item getpriority
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
-=item getpwnam NAME
+=item getpwnam
Not implemented. (S<Mac OS>, Win32)
Not useful. (S<RISC OS>)
-=item getgrnam NAME
+=item getgrnam
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
-=item getnetbyname NAME
+=item getnetbyname
Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
-=item getpwuid UID
+=item getpwuid
Not implemented. (S<Mac OS>, Win32)
Not useful. (S<RISC OS>)
-=item getgrgid GID
+=item getgrgid
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
-=item getnetbyaddr ADDR,ADDRTYPE
+=item getnetbyaddr
Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
-=item getprotobynumber NUMBER
+=item getprotobynumber
Not implemented. (S<Mac OS>)
-=item getservbyport PORT,PROTO
+=item getservbyport
Not implemented. (S<Mac OS>)
Not implemented. (Win32, S<Plan 9>)
-=item sethostent STAYOPEN
+=item sethostent
Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
-=item setnetent STAYOPEN
+=item setnetent
Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
-=item setprotoent STAYOPEN
+=item setprotoent
Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
-=item setservent STAYOPEN
+=item setservent
Not implemented. (S<Plan 9>, Win32, S<RISC OS>)
Not implemented. (S<Plan 9>)
-=item glob EXPR
-
=item glob
This operator is implemented via the File::Glob extension on most
platforms. See L<File::Glob> for portability information.
+=item gmtime
+
+Same portability caveats as L<localtime>.
+
=item ioctl FILEHANDLE,FUNCTION,SCALAR
Not implemented. (VMS)
Available only for socket handles. (S<RISC OS>)
-=item kill SIGNAL, LIST
+=item kill
C<kill(0, LIST)> is implemented for the sake of taint checking;
use with other signals is unimplemented. (S<Mac OS>)
$sig is 0 and the specified process exists, it returns true without
actually terminating it. (Win32)
-=item link OLDFILE,NEWFILE
+C<kill(-9, $pid)> will terminate the process specified by $pid and
+recursively all child processes owned by it. This is different from
+the Unix semantics, where the signal will be delivered to all
+processes in the same process group as the process specified by
+$pid. (Win32)
+
+Is not supported for process identification number of 0 or negative
+numbers. (VMS)
+
+=item link
-Not implemented. (S<Mac OS>, MPE/iX, VMS, S<RISC OS>)
+Not implemented. (S<Mac OS>, MPE/iX, S<RISC OS>)
Link count not updated because hard links are not quite that hard
(They are sort of half-way between hard and soft links). (AmigaOS)
-Hard links are implemented on Win32 (Windows NT and Windows 2000)
-under NTFS only.
+Hard links are implemented on Win32 under NTFS only. They are
+natively supported on Windows 2000 and later. On Windows NT they
+are implemented using the Windows POSIX subsystem support and the
+Perl process will need Administrator or Backup Operator privileges
+to create hard links.
-=item lstat FILEHANDLE
+Available on 64 bit OpenVMS 8.2 and later. (VMS)
-=item lstat EXPR
+=item localtime
+
+Because Perl currently relies on the native standard C localtime()
+function, it is only safe to use times between 0 and (2**31)-1. Times
+outside this range may result in unexpected behavior depending on your
+operating system's implementation of localtime().
=item lstat
-Not implemented. (VMS, S<RISC OS>)
+Not implemented. (S<RISC OS>)
Return values (especially for device and inode) may be bogus. (Win32)
-=item msgctl ID,CMD,ARG
+=item msgctl
-=item msgget KEY,FLAGS
+=item msgget
-=item msgsnd ID,MSG,FLAGS
+=item msgsnd
-=item msgrcv ID,VAR,SIZE,TYPE,FLAGS
+=item msgrcv
Not implemented. (S<Mac OS>, Win32, VMS, S<Plan 9>, S<RISC OS>, VOS)
-=item open FILEHANDLE,EXPR
-
-=item open FILEHANDLE
+=item open
The C<|> variants are supported only if ToolServer is installed.
(S<Mac OS>)
Opening a process does not automatically flush output handles on some
platforms. (SunOS, Solaris, HP-UX)
-=item pipe READHANDLE,WRITEHANDLE
+=item pipe
Very limited functionality. (MiNT)
-=item readlink EXPR
-
=item readlink
Not implemented. (Win32, VMS, S<RISC OS>)
-=item rename OLDNAME,NEWNAME
+=item rename
Can't move directories between directories on different logical volumes. (Win32)
-=item select RBITS,WBITS,EBITS,TIMEOUT
+=item select
Only implemented on sockets. (Win32, VMS)
Note that the C<select FILEHANDLE> form is generally portable.
-=item semctl ID,SEMNUM,CMD,ARG
+=item semctl
-=item semget KEY,NSEMS,FLAGS
+=item semget
-=item semop KEY,OPSTRING
+=item semop
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
Not implemented. (S<Mac OS>, MPE/iX, VMS, Win32, S<RISC OS>, VOS)
-=item setpgrp PID,PGRP
+=item setpgrp
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
-=item setpriority WHICH,WHO,PRIORITY
+=item setpriority
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
Not implemented. (S<Mac OS>, MPE/iX, Win32, S<RISC OS>, VOS)
-=item setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL
+=item setsockopt
Not implemented. (S<Plan 9>)
-=item shmctl ID,CMD,ARG
+=item shmctl
-=item shmget KEY,SIZE,FLAGS
+=item shmget
-=item shmread ID,VAR,POS,SIZE
+=item shmread
-=item shmwrite ID,STRING,POS,SIZE
+=item shmwrite
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
-=item sockatmark SOCKET
+=item sockatmark
A relatively recent addition to socket functions, may not
be implemented even in UNIX platforms.
-=item socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL
+=item socketpair
-Not implemented. (Win32, VMS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (S<RISC OS>, VOS, VM/ESA)
-=item stat FILEHANDLE
-
-=item stat EXPR
+Available on 64 bit OpenVMS 8.2 and later. (VMS)
=item stat
some versions of cygwin when doing a stat("foo") and if not finding it
may then attempt to stat("foo.exe") (Cygwin)
-=item symlink OLDFILE,NEWFILE
+On Win32 stat() needs to open the file to determine the link count
+and update attributes that may have been changed through hard links.
+Setting ${^WIN32_SLOPPY_STAT} to a true value speeds up stat() by
+not performing this operation. (Win32)
-Not implemented. (Win32, VMS, S<RISC OS>)
+=item symlink
+
+Not implemented. (Win32, S<RISC OS>)
-=item syscall LIST
+Implemented on 64 bit VMS 8.3. VMS requires the symbolic link to be in Unix
+syntax if it is intended to resolve to a valid path.
+
+=item syscall
Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
-=item sysopen FILEHANDLE,FILENAME,MODE,PERMS
+=item sysopen
The traditional "0", "1", and "2" MODEs are implemented with different
numeric values on some systems. The flags exported by C<Fcntl>
(O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though. (S<Mac
OS>, OS/390, VM/ESA)
-=item system LIST
-
-In general, do not assume the UNIX/POSIX semantics that you can shift
-C<$?> right by eight to get the exit value, or that C<$? & 127>
-would give you the number of the signal that terminated the program,
-or that C<$? & 128> would test true if the program was terminated by a
-coredump. Instead, use the POSIX W*() interfaces: for example, use
-WIFEXITED($?) and WEXITVALUE($?) to test for a normal exit and the exit
-value, WIFSIGNALED($?) and WTERMSIG($?) for a signal exit and the
-signal. Core dumping is not a portable concept, so there's no portable
-way to test for that.
+=item system
Only implemented if ToolServer is installed. (S<Mac OS>)
The return value is POSIX-like (shifted up by 8 bits), which only allows
room for a made-up value derived from the severity bits of the native
32-bit condition code (unless overridden by C<use vmsish 'status'>).
+If the native condition code is one that has a POSIX value encoded, the
+POSIX value will be decoded to extract the expected exit value.
For more details see L<perlvms/$?>. (VMS)
=item times
Not useful. (S<RISC OS>)
-=item truncate FILEHANDLE,LENGTH
-
-=item truncate EXPR,LENGTH
+=item truncate
Not implemented. (Older versions of VMS)
or C<sysopen(FH,...,O_APPEND|O_RDWR)>. If a filename is supplied, it
should not be held open elsewhere. (Win32)
-=item umask EXPR
-
=item umask
Returns undef where unavailable, as of version 5.005.
C<umask> works but the correct permissions are set only when the file
is finally closed. (AmigaOS)
-=item utime LIST
+=item utime
Only the modification time is updated. (S<BeOS>, S<Mac OS>, VMS, S<RISC OS>)
=item wait
-=item waitpid PID,FLAGS
+=item waitpid
Not implemented. (S<Mac OS>)
=back
-=head1 CHANGES
-
-=over 4
-
-=item v1.49, 12 August 2002
-
-Updates for VOS from Paul Green.
-
-=item v1.48, 02 February 2001
-
-Various updates from perl5-porters over the past year, supported
-platforms update from Jarkko Hietaniemi.
-
-=item v1.47, 22 March 2000
-
-Various cleanups from Tom Christiansen, including migration of
-long platform listings from L<perl>.
-
-=item v1.46, 12 February 2000
-
-Updates for VOS and MPE/iX. (Peter Prymmer) Other small changes.
-
-=item v1.45, 20 December 1999
-
-Small changes from 5.005_63 distribution, more changes to EBCDIC info.
-
-=item v1.44, 19 July 1999
-
-A bunch of updates from Peter Prymmer for C<$^O> values,
-endianness, File::Spec, VMS, BS2000, OS/400.
-
-=item v1.43, 24 May 1999
-
-Added a lot of cleaning up from Tom Christiansen.
-
-=item v1.42, 22 May 1999
-
-Added notes about tests, sprintf/printf, and epoch offsets.
-
-=item v1.41, 19 May 1999
-
-Lots more little changes to formatting and content.
-
-Added a bunch of C<$^O> and related values
-for various platforms; fixed mail and web addresses, and added
-and changed miscellaneous notes. (Peter Prymmer)
-
-=item v1.40, 11 April 1999
-
-Miscellaneous changes.
-
-=item v1.39, 11 February 1999
-
-Changes from Jarkko and EMX URL fixes Michael Schwern. Additional
-note about newlines added.
-
-=item v1.38, 31 December 1998
-
-More changes from Jarkko.
-
-=item v1.37, 19 December 1998
-
-More minor changes. Merge two separate version 1.35 documents.
-
-=item v1.36, 9 September 1998
-
-Updated for Stratus VOS. Also known as version 1.35.
-
-=item v1.35, 13 August 1998
-
-Integrate more minor changes, plus addition of new sections under
-L<"ISSUES">: L<"Numbers endianness and Width">,
-L<"Character sets and character encoding">,
-L<"Internationalisation">.
-
-=item v1.33, 06 August 1998
-
-Integrate more minor changes.
-
-=item v1.32, 05 August 1998
-
-Integrate more minor changes.
-
-=item v1.30, 03 August 1998
-
-Major update for RISC OS, other minor changes.
-
-=item v1.23, 10 July 1998
-
-First public release with perl5.005.
-
-=back
=head1 Supported Platforms
Michael G Schwern <schwern@pobox.com>,
Dan Sugalski <dan@sidhe.org>,
Nathan Torkington <gnat@frii.com>.
-
+John Malmberg <wb8tyw@qsl.net>