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
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 |
---------------------------
"\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 or OS/400 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
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
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 *
(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
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.
+Perl on VOS can be built using two different compilers and two different
+versions of the POSIX runtime. The recommended method for building full
+Perl is with the GNU C compiler and the generally-available version of
+VOS POSIX support. See F<README.vos> (installed as L<perlvos>) for
+restrictions that apply when Perl is built using the VOS Standard C
+compiler or the alpha version of VOS POSIX support.
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
=item *
-F<README.vos>
+F<README.vos> (installed as L<perlvos>)
=item *
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
Access permissions are mapped onto VOS access-control list changes. (VOS)
The actual permissions set depend on the value of the C<CYGWIN>
-environment variable. (Cygwin)
+in the SYSTEM environment settings. (Cygwin)
=item chown LIST
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>)
-
=item sethostent STAYOPEN
Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>)
=item setgrent
-Not implemented. (MPE/iX, Win32)
+Not implemented. (S<Mac OS>, MPE/iX, VMS, Win32, VMS, S<RISC OS>)
=item setpgrp PID,PGRP
=item setpwent
-Not implemented. (MPE/iX, Win32)
+Not implemented. (S<Mac OS>, MPE/iX, Win32, S<RISC OS>)
=item setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL
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.
DG/UX
DOS DJGPP 1)
DYNIX/ptx
- EPOC
+ EPOC R5
FreeBSD
HP-UX
IRIX
Netware
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