platforms remove just the most recent version, too). The portable
idiom to remove all the versions of a file is
- 1 while unlink "file" or die $!;
+ 1 while unlink "file";
This will terminate if the file is undeleteable for some reason
(protected, not there, and so on).
The Unix System V IPC (C<msg*(), sem*(), shm*()>) is not available
even on all Unix platforms.
+Do not use either the bare result of C<pack("N", 10, 20, 30, 40)>
+or bare v-strings (such as C<v10.20.30.40>) or to represent
+IPv4 addresses: both forms just pack the four bytes into network order.
+That this would be equal to the C language C<in_addr> struct (which is
+what the socket code internally uses) is not guaranteed. To be
+portable use the routines of the Socket extension, such as
+C<inet_aton()>, C<inet_ntoa()>, and C<sockaddr_in()>.
+
The rule of thumb for portable code is: Do it all in portable Perl, or
use a module (that may internally implement it with platform-specific
code, but expose a common interface).
The C<$^O> variable and the C<$Config{archname}> values for various
DOSish perls are as follows:
- OS $^O $Config{'archname'}
- --------------------------------------------
- MS-DOS dos
- PC-DOS dos
- OS/2 os2
- Windows 95 MSWin32 MSWin32-x86
- Windows 98 MSWin32 MSWin32-x86
- Windows NT MSWin32 MSWin32-x86
- Windows NT MSWin32 MSWin32-ALPHA
- Windows NT MSWin32 MSWin32-ppc
- Cygwin cygwin
+ OS $^O $Config{archname} ID Version
+ --------------------------------------------------------
+ MS-DOS dos ?
+ PC-DOS dos ?
+ OS/2 os2 ?
+ Windows 3.1 ? ? 0 3 01
+ Windows 95 MSWin32 MSWin32-x86 1 4 00
+ Windows 98 MSWin32 MSWin32-x86 1 4 10
+ Windows ME MSWin32 MSWin32-x86 1 ?
+ Windows NT MSWin32 MSWin32-x86 2 4 xx
+ Windows NT MSWin32 MSWin32-ALPHA 2 4 xx
+ Windows NT MSWin32 MSWin32-ppc 2 4 xx
+ Windows 2000 MSWin32 MSWin32-x86 2 5 xx
+ Windows XP MSWin32 MSWin32-x86 2 ?
+ Windows CE MSWin32 ? 3
+ Cygwin cygwin ?
The various MSWin32 Perl's can distinguish the OS they are running on
via the value of the fifth element of the list returned from
=item getsockopt SOCKET,LEVEL,OPTNAME
-Not implemented. (S<Mac OS>, Plan9)
+Not implemented. (Plan9)
=item glob EXPR
=item setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL
-Not implemented. (S<Mac OS>, Plan9)
+Not implemented. (Plan9)
=item shmctl ID,CMD,ARG