OS/400 PASE port
[p5sagit/p5-mst-13.2.git] / pod / perlport.pod
index 9ca3f15..65ca9d8 100644 (file)
@@ -75,7 +75,7 @@ This information should not be considered complete; it includes possibly
 transient information about idiosyncrasies of some of the ports, almost
 all of which are in a state of constant evolution.  Thus, this material
 should be considered a perpetual work in progress
-(<IMG SRC="yellow_sign.gif" ALT="Under Construction">).
+(C<< <IMG SRC="yellow_sign.gif" ALT="Under Construction"> >>).
 
 =head1 ISSUES
 
@@ -104,7 +104,7 @@ newlines:
         #...
     }
 
-You can get away with this on Unix and MacOS (they have a single
+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 Dunce::Files module can
@@ -171,8 +171,8 @@ newline representation.  A single line of code will often suffice:
 Some of this may be confusing.  Here's a handy reference to the ASCII CR
 and LF characters.  You can print it out and stick it in your wallet.
 
-    LF  ==  \012  ==  \x0A  ==  \cJ  ==  ASCII 10
-    CR  ==  \015  ==  \x0D  ==  \cM  ==  ASCII 13
+    LF  eq  \012  eq  \x0A  eq  \cJ  eq  chr(10)  eq  ASCII 10
+    CR  eq  \015  eq  \x0D  eq  \cM  eq  chr(13)  eq  ASCII 13
 
              | Unix | DOS  | Mac  |
         ---------------------------
@@ -188,7 +188,23 @@ The Unix column assumes that you are not accessing a serial line
 "\n", and "\n" on output becomes CRLF.
 
 These are just the most common definitions of C<\n> and C<\r> in Perl.
-There may well be others.
+There may well be others.  For example, on an EBCDIC implementation
+such as z/OS (OS/390) or OS/400 (using the ILE, the PASE is ASCII-based)
+the above material is similar to "Unix" but the code numbers change:
+
+    LF  eq  \025  eq  \x15  eq           chr(21)  eq  CP-1047 21
+    LF  eq  \045  eq  \x25  eq  \cU  eq  chr(37)  eq  CP-0037 37
+    CR  eq  \015  eq  \x0D  eq  \cM  eq  chr(13)  eq  CP-1047 13
+    CR  eq  \015  eq  \x0D  eq  \cM  eq  chr(13)  eq  CP-0037 13
+
+             | z/OS | OS/400 |
+        ----------------------
+        \n   |  LF  |  LF    |
+        \r   |  CR  |  CR    |
+        \n * |  LF  |  LF    |
+        \r * |  CR  |  CR    |
+        ----------------------
+        * text-mode STDIO
 
 =head2 Numbers endianness and Width
 
@@ -262,7 +278,7 @@ timestamp (meaning that about the only portable timestamp is the
 modification timestamp), or one second granularity of any timestamps
 (e.g. the FAT filesystem limits the time granularity to two seconds).
 
-The "inode change timestamp" (the <-C> filetest) may really be the
+The "inode change timestamp" (the C<-C> filetest) may really be the
 "creation timestamp" (which it is not in UNIX).
 
 VOS perl can emulate Unix filenames with C</> as path separator.  The
@@ -357,7 +373,7 @@ Three-arg open can also help protect against this translation in cases
 where it is undesirable.
 
 Don't use C<:> as a part of a filename since many systems use that for
-their own semantics (MacOS Classic for separating pathname components,
+their own semantics (Mac OS Classic for separating pathname components,
 many networking schemes and utilities for separating the nodename and
 the pathname, and so on).  For the same reasons, avoid C<@>, C<;> and
 C<|>.
@@ -432,6 +448,38 @@ directories.
 
 Don't count on specific values of C<$!>.
 
+=head2 Command names versus file pathnames
+
+Don't assume that the name used to invoke a command or program with
+C<system> or C<exec> can also be used to test for the existence of the
+file that holds the executable code for that command or program.
+First, many systems have "internal" commands that are built-in to the
+shell or OS and while these commands can be invoked, there is no
+corresponding file.  Second, some operating systems (e.g., Cygwin,
+DJGPP, OS/2, and VOS) have required suffixes for executable files;
+these suffixes are generally permitted on the command name but are not
+required.  Thus, a command like "perl" might exist in a file named
+"perl", "perl.exe", or "perl.pm", depending on the operating system.
+The variable "_exe" in the Config module holds the executable suffix,
+if any.  Third, the VMS port carefully sets up $^X and
+$Config{perlpath} so that no further processing is required.  This is
+just as well, because the matching regular expression used below would
+then have to deal with a possible trailing version number in the VMS
+file name.
+
+To convert $^X to a file pathname, taking account of the requirements
+of the various operating system possibilities, say:
+  use Config;
+  $thisperl = $^X;
+  if ($^O ne 'VMS')
+     {$thisperl .= $Config{_exe} unless $thisperl =~ m/$Config{_exe}$/i;}
+
+To convert $Config{perlpath} to a file pathname, say:
+  use Config;
+  $thisperl = $Config{perlpath};
+  if ($^O ne 'VMS')
+     {$thisperl .= $Config{_exe} unless $thisperl =~ m/$Config{_exe}$/i;}
+
 =head2 Interprocess Communication (IPC)
 
 In general, don't directly access the system in code meant to be
@@ -784,6 +832,13 @@ Win32::GetOSVersion().  For example:
         print +('3.1','95','NT')[$os_version_info[4]],"\n";
     }
 
+There are also Win32::IsWinNT() and Win32::IsWin95(), try C<perldoc Win32>,
+and as of libwin32 0.19 (not part of the core Perl distribution)
+Win32::GetOSName().  The very portable POSIX::uname() will work too:
+
+    c:\> perl -MPOSIX -we "print join '|', uname"
+    Windows NT|moonru|5.0|Build 2195 (Service Pack 2)|x86
+
 Also see:
 
 =over 4
@@ -797,7 +852,7 @@ and L<perldos>.
 
 The EMX environment for DOS, OS/2, etc. emx@iaehv.nl,
 http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.html or
-ftp://hobbes.nmsu.edu/pub/os2/dev/emx.  Also L<perlos2>.
+ftp://hobbes.nmsu.edu/pub/os2/dev/emx/  Also L<perlos2>.
 
 =item *
 
@@ -1024,12 +1079,12 @@ Perl on VOS is discussed in F<README.vos> in the perl distribution
 (installed as L<perlvos>).  Perl on VOS can accept either VOS- or
 Unix-style file specifications as in either of the following:
 
-    $ perl -ne "print if /perl_setup/i" >system>notices
-    $ perl -ne "print if /perl_setup/i" /system/notices
+    C<< $ perl -ne "print if /perl_setup/i" >system>notices >>
+    C<< $ perl -ne "print if /perl_setup/i" /system/notices >>
 
 or even a mixture of both as in:
 
-    $ perl -ne "print if /perl_setup/i" >system/notices
+    C<< $ perl -ne "print if /perl_setup/i" >system/notices >>
 
 Even though VOS allows the slash character to appear in object
 names, because the VOS port of Perl interprets it as a pathname
@@ -1038,12 +1093,6 @@ 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.
 
-See F<README.vos> for restrictions that apply when Perl is built
-with the alpha version of VOS POSIX.1 support.
-
-Perl on VOS is built without any extensions and does not support
-dynamic loading.
-
 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
 can examine the content of the @INC array like so:
@@ -1055,26 +1104,13 @@ can examine the content of the @INC array like so:
         die;
     }
 
-    if (grep(/860/, @INC)) {
-        print "This box is a Stratus XA/R!\n";
-
-    } elsif (grep(/7100/, @INC)) {
-        print "This box is a Stratus HP 7100 or 8xxx!\n";
-
-    } elsif (grep(/8000/, @INC)) {
-        print "This box is a Stratus HP 8xxx!\n";
-
-    } else {
-        print "This box is a Stratus 68K!\n";
-    }
-
 Also see:
 
 =over 4
 
 =item *
 
-F<README.vos>
+F<README.vos> (installed as L<perlvos>)
 
 =item *
 
@@ -1082,12 +1118,12 @@ The VOS mailing list.
 
 There is no specific mailing list for Perl on VOS.  You can post
 comments to the comp.sys.stratus newsgroup, or subscribe to the general
-Stratus mailing list.  Send a letter with "Subscribe Info-Stratus" in
+Stratus mailing list.  Send a letter with "subscribe Info-Stratus" in
 the message body to majordomo@list.stratagy.com.
 
 =item *
 
-VOS Perl on the web at http://ftp.stratus.com/pub/vos/vos.html
+VOS Perl on the web at http://ftp.stratus.com/pub/vos/posix/posix.html
 
 =back
 
@@ -1100,7 +1136,9 @@ Character Code Set ID 0037 for OS/400 and either 1047 or POSIX-BC for S/390
 systems).  On the mainframe perl currently works under the "Unix system
 services for OS/390" (formerly known as OpenEdition), VM/ESA OpenEdition, or
 the BS200 POSIX-BC system (BS2000 is supported in perl 5.6 and greater).
-See L<perlos390> for details.  
+See L<perlos390> for details.  Note that for OS/400 there is also a port of
+Perl 5.8.1/5.9.0 or later to the PASE which is ASCII-based (as opposed to
+ILE which is EBCDIC-based), see L<perlos400>. 
 
 As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
 sub-systems do not support the C<#!> shebang trick for script invocation.
@@ -1310,6 +1348,7 @@ in the "OTHER" category include:
     OS            $^O        $Config{'archname'}
     ------------------------------------------
     Amiga DOS     amigaos    m68k-amigos
+    BeOS          beos
     MPE/iX        mpeix      PA-RISC1.1
 
 See also:
@@ -1342,7 +1381,7 @@ as well as from CPAN.
 
 =item  *
 
-Plan 9, F<README.plan9>
+S<Plan 9>, F<README.plan9>
 
 =back
 
@@ -1440,32 +1479,35 @@ Only good for changing "owner" and "other" read-write access. (S<RISC OS>)
 
 Access permissions are mapped onto VOS access-control list changes. (VOS)
 
+The actual permissions set depend on the value of the C<CYGWIN>
+in the SYSTEM environment settings.  (Cygwin)
+
 =item chown LIST
 
-Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
 
 Does nothing, but won't fail. (Win32)
 
+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, Plan9, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (S<Mac OS>, Win32, VMS, S<Plan 9>, S<RISC OS>, VOS, VM/ESA)
 
 =item crypt PLAINTEXT,SALT
 
 May not be available if library or source was not provided when building
 perl. (Win32)
 
-Not implemented. (VOS)
-
 =item dbmclose HASH
 
-Not implemented. (VMS, Plan9, VOS)
+Not implemented. (VMS, S<Plan 9>, VOS)
 
 =item dbmopen HASH,DBNAME,MODE
 
-Not implemented. (VMS, Plan9, VOS)
+Not implemented. (VMS, S<Plan 9>, VOS)
 
 =item dump LABEL
 
@@ -1507,7 +1549,7 @@ Available only on Windows NT (not on Windows 95). (Win32)
 
 =item fork
 
-Not implemented. (S<Mac OS>, AmigaOS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (S<Mac OS>, AmigaOS, S<RISC OS>, VM/ESA, VMS)
 
 Emulated using multiple interpreters.  See L<perlfork>.  (Win32)
 
@@ -1520,11 +1562,11 @@ Not implemented. (S<Mac OS>, S<RISC OS>)
 
 =item getpgrp PID
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
 =item getppid
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, S<RISC OS>)
 
 =item getpriority WHICH,WHO
 
@@ -1542,7 +1584,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
 =item getnetbyname NAME
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item getpwuid UID
 
@@ -1556,7 +1598,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
 =item getnetbyaddr ADDR,ADDRTYPE
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item getprotobynumber NUMBER
 
@@ -1580,39 +1622,31 @@ Not implemented. (S<Mac OS>, Win32)
 
 =item getnetent
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item getprotoent
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item getservent
 
-Not implemented. (Win32, Plan9)
-
-=item setpwent
-
-Not implemented. (S<Mac OS>, Win32, S<RISC OS>)
-
-=item setgrent
-
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
+Not implemented. (Win32, S<Plan 9>)
 
 =item sethostent STAYOPEN
 
-Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
 
 =item setnetent STAYOPEN
 
-Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
 
 =item setprotoent STAYOPEN
 
-Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>, S<RISC OS>)
 
 =item setservent STAYOPEN
 
-Not implemented. (Plan9, Win32, S<RISC OS>)
+Not implemented. (S<Plan 9>, Win32, S<RISC OS>)
 
 =item endpwent
 
@@ -1628,19 +1662,19 @@ Not implemented. (S<Mac OS>, Win32)
 
 =item endnetent
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item endprotoent
 
-Not implemented. (S<Mac OS>, Win32, Plan9)
+Not implemented. (S<Mac OS>, Win32, S<Plan 9>)
 
 =item endservent
 
-Not implemented. (Plan9, Win32)
+Not implemented. (S<Plan 9>, Win32)
 
 =item getsockopt SOCKET,LEVEL,OPTNAME
 
-Not implemented. (Plan9)
+Not implemented. (S<Plan 9>)
 
 =item glob EXPR
 
@@ -1700,7 +1734,7 @@ Return values (especially for device and inode) may be bogus. (Win32)
 
 =item msgrcv ID,VAR,SIZE,TYPE,FLAGS
 
-Not implemented. (S<Mac OS>, Win32, VMS, Plan9, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<Plan 9>, S<RISC OS>, VOS)
 
 =item open FILEHANDLE,EXPR
 
@@ -1742,7 +1776,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
 
 =item setgrent
 
-Not implemented. (MPE/iX, Win32)
+Not implemented. (S<Mac OS>, MPE/iX, VMS, Win32, S<RISC OS>, VOS)
 
 =item setpgrp PID,PGRP
 
@@ -1754,11 +1788,11 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
 
 =item setpwent
 
-Not implemented. (MPE/iX, Win32)
+Not implemented. (S<Mac OS>, MPE/iX, Win32, S<RISC OS>, VOS)
 
 =item setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL
 
-Not implemented. (Plan9)
+Not implemented. (S<Plan 9>)
 
 =item shmctl ID,CMD,ARG
 
@@ -1831,8 +1865,8 @@ 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($?) an WEXITVALUE($?) to test for a normal exit and the exit
-value, and WIFSIGNALED($?) and WTERMSIG($?)  for a signal exit and the
+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.
 
@@ -1887,7 +1921,7 @@ Not useful. (S<RISC OS>)
 
 Not implemented. (Older versions of VMS)
 
-Truncation to zero-length only. (VOS)
+Truncation to same-or-shorter lengths only. (VOS)
 
 If a FILEHANDLE is supplied, it must be writable and opened in append
 mode (i.e., use C<<< open(FH, '>>filename') >>>
@@ -1917,7 +1951,7 @@ two seconds. (Win32)
 
 =item waitpid PID,FLAGS
 
-Not implemented. (S<Mac OS>, VOS)
+Not implemented. (S<Mac OS>)
 
 Can only be applied to process handles returned for processes spawned
 using C<system(1, ...)> or pseudo processes created with C<fork()>. (Win32)
@@ -1930,6 +1964,10 @@ Not useful. (S<RISC OS>)
 
 =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
@@ -2017,84 +2055,70 @@ First public release with perl5.005.
 
 =head1 Supported Platforms
 
-As of early 2001 (the Perl releases 5.6.1 and 5.7.1), the following
-platforms are able to build Perl from the standard source code
-distribution available at http://www.cpan.org/src/index.html
-
-       AIX
-       AmigaOS
-       Darwin          (Mac OS X)
-       DG/UX
-       DOS DJGPP       1)
-       DYNIX/ptx
-       EPOC
-       FreeBSD
-       HP-UX
-       IRIX
-       Linux
-       MachTen
-       MacOS Classic   2)
-       NonStop-UX
-       ReliantUNIX     (SINIX)
-       OpenBSD
-       OpenVMS         (VMS)
-       OS/2
-       OS X
-       QNX
-       Solaris
-       Tru64 UNIX      (DEC OSF/1, Digital UNIX)
-       UNICOS
-       UNICOS/mk
-       VOS
-       Win32/NT/2K     3)
+As of July 2002 (the Perl release 5.8.0), the following platforms are
+able to build Perl from the standard source code distribution
+available at http://www.cpan.org/src/index.html
+
+        AIX
+        BeOS
+        Cygwin
+        DG/UX
+        DOS DJGPP       1)
+        DYNIX/ptx
+        EPOC R5
+        FreeBSD
+        HP-UX
+        IRIX
+        Linux
+        Mac OS Classic
+        Mac OS X         (Darwin)
+        MPE/iX
+        NetBSD
+        NetWare
+        NonStop-UX
+        ReliantUNIX     (SINIX)
+        OpenBSD
+        OpenVMS         (VMS)
+        OS/2
+        OS/400          (using the PASE) (since Perl 5.8.1/5.9.0)
+        PowerUX
+        POSIX-BC        (BS2000)
+        QNX
+        Solaris
+        SunOS 4
+        SUPER-UX
+        Tru64 UNIX      (DEC OSF/1, Digital UNIX)
+        UNICOS
+        UNICOS/mk
+        UTS
+        VOS
+        Win95/98/ME/2K/XP 2)
+        WinCE
+        z/OS            (OS/390)
+        VM/ESA
 
         1) in DOS mode either the DOS or OS/2 ports can be used
-        2) Mac OS Classic (pre-X) is almost 5.6.1-ready; building from
-          the source does work with 5.6.1, but additional MacOS specific
-           source code is needed for a complete build.  See the web
-           site http://dev.macperl.org/ for more information.
-        3) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++
-
-The following platforms worked for the previous releases (5.6.0 and 5.7.0),
-but we did not manage to test these in time for the 5.7.1 release.
-There is a very good chance that these will work fine with the 5.7.1.
-
-       DomainOS
-       Hurd
-       LynxOS
-       MinGW
-       MPE/iX
-       NetBSD
-       PowerMAX
-       SCO SV
-       SunOS
-       SVR4
-       Unixware
-       Windows 3.1
-       Windows 95
-       Windows 98
-       Windows Me
-
-The following platform worked for the 5.005_03 major release but not
-for 5.6.0.  Standardization on UTF-8 as the internal string
-representation in 5.6.0 and 5.6.1 introduced incompatibilities in this
-EBCDIC platform.  While Perl 5.7.1 will build on this platform some
-regression tests may fail and the C<use utf8;> pragma typically
-introduces text handling errors.
-
-       OS/390  1)
-
-       1) previously known as MVS, about to become z/OS.
-
-Strongly related to the OS/390 platform by also being EBCDIC-based
-mainframe platforms are the following platforms:
-
-       POSIX-BC        (BS2000)
-       VM/ESA
-
-These are also expected to work, albeit with no UTF-8 support, under 5.6.1 
-for the same reasons as OS/390.  Contact the mailing list perl-mvs@perl.org 
-for more details.
+        2) compilers: Borland, MinGW (GCC), VC6
+
+The following platforms worked with the previous releases (5.6 and
+5.7), but we did not manage either to fix or to test these in time
+for the 5.8.0 release.  There is a very good chance that many of these
+will work fine with the 5.8.0.
+
+        BSD/OS
+        DomainOS
+        Hurd
+        LynxOS
+        MachTen
+        PowerMAX
+        SCO SV
+        SVR4
+        Unixware
+        Windows 3.1
+
+Known to be broken for 5.8.0 (but 5.6.1 and 5.7.2 can be used):
+
+       AmigaOS
 
 The following platforms have been known to build Perl from source in
 the past (5.005_03 and earlier), but we haven't been able to verify
@@ -2104,63 +2128,53 @@ active champion on these platforms--or both.  They used to work,
 though, so go ahead and try compiling them, and let perlbug@perl.org
 of any trouble.
 
-       3b1
-       A/UX
-       BeOS
-       BSD/OS
-       ConvexOS
-       CX/UX
-       DC/OSx
-       DDE SMES
-       DOS EMX
-       Dynix
-       EP/IX
-       ESIX
-       FPS
-       GENIX
-       Greenhills
-       ISC
-       MachTen 68k
-       MiNT
-       MPC
-       NEWS-OS
-       NextSTEP
-       OpenSTEP
-       Opus
-       Plan 9
-       PowerUX
-       RISC/os
-       SCO ODT/OSR     
-       Stellar
-       SVR2
-       TI1500
-       TitanOS
-       Ultrix
-       Unisys Dynix
-       Unixware
-       UTS
-
-Support for the following platform is planned for a future Perl release:
-
-       Netware
+        3b1
+        A/UX
+        ConvexOS
+        CX/UX
+        DC/OSx
+        DDE SMES
+        DOS EMX
+        Dynix
+        EP/IX
+        ESIX
+        FPS
+        GENIX
+        Greenhills
+        ISC
+        MachTen 68k
+        MiNT
+        MPC
+        NEWS-OS
+        NextSTEP
+        OpenSTEP
+        Opus
+        Plan 9
+        RISC/os
+        SCO ODT/OSR
+        Stellar
+        SVR2
+        TI1500
+        TitanOS
+        Ultrix
+        Unisys Dynix
 
 The following platforms have their own source code distributions and
-binaries available via http://www.cpan.org/ports/index.html:
+binaries available via http://www.cpan.org/ports/
 
-                               Perl release
+                                Perl release
 
-       Netware                 5.003_07
-       OS/400                  5.005_02
-       Tandem Guardian         5.004
+        OS/400 (ILE)            5.005_02
+        Tandem Guardian         5.004
 
 The following platforms have only binaries available via
 http://www.cpan.org/ports/index.html :
 
-                               Perl release
+                                Perl release
 
-       Acorn RISCOS            5.005_02
-       AOS                     5.002
-       LynxOS                  5.004_02
+        Acorn RISCOS            5.005_02
+        AOS                     5.002
+        LynxOS                  5.004_02
 
 Although we do suggest that you always build your own Perl from
 the source code, both for maximal configurability and for security,
@@ -2169,12 +2183,14 @@ http://www.cpan.org/ports/index.html for binary distributions.
 
 =head1 SEE ALSO
 
-L<perlaix>, L<perlapollo>, L<perlamiga>, L<perlbeos>, L<perlbs200>,
-L<perlce>, L<perlcygwin>, L<perldgux>, L<perldos>, L<perlepoc>, L<perlebcdic>,
-L<perlhurd>, L<perlhpux>, L<perlmachten>, L<perlmacos>, L<perlmint>,
-L<perlmpeix>, L<perlnetware>, L<perlos2>, L<perlos390>, L<perlplan9>,
-L<perlqnx>, L<perlsolaris>, L<perltru64>, L<perlunicode>,
-L<perlvmesa>, L<perlvms>, L<perlvos>, L<perlwin32>, and L<Win32>.
+L<perlaix>, L<perlamiga>, L<perlapollo>, L<perlbeos>, L<perlbs2000>,
+L<perlce>, L<perlcygwin>, L<perldgux>, L<perldos>, L<perlepoc>,
+L<perlebcdic>, L<perlfreebsd>, L<perlhurd>, L<perlhpux>, L<perlirix>,
+L<perlmachten>, L<perlmacos>, L<perlmint>, L<perlmpeix>,
+L<perlnetware>, L<perlos2>, L<perlos390>, L<perlos400>,
+L<perlplan9>, L<perlqnx>, L<perlsolaris>, L<perltru64>,
+L<perlunicode>, L<perlvmesa>, L<perlvms>, L<perlvos>,
+L<perlwin32>, and L<Win32>.
 
 =head1 AUTHORS / CONTRIBUTORS
 
@@ -2188,7 +2204,7 @@ Andy Dougherty <doughera@lafayette.edu>,
 Dominic Dunlop <domo@computer.org>,
 Neale Ferguson <neale@vma.tabnsw.com.au>,
 David J. Fiander <davidf@mks.com>,
-Paul Green <Paul_Green@stratus.com>,
+Paul Green <Paul.Green@stratus.com>,
 M.J.T. Guy <mjtg@cam.ac.uk>,
 Jarkko Hietaniemi <jhi@iki.fi>,
 Luther Huffman <lutherh@stratcom.com>,