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
+ LF eq \025 eq \x15 eq \cU eq chr(21) eq CP-1047 21
+ LF eq \045 eq \x25 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
connections use the C<pack> and C<unpack> formats C<n> and C<N>, the
"network" orders. These are guaranteed to be portable.
+As of perl 5.9.2, you can also use the C<E<gt>> and C<E<lt>> modifiers
+to force big- or little-endian byte-order. This is useful if you want
+to store signed integers or 64-bit integers, for example.
+
You can explore the endianness of your platform by unpacking a
data structure packed in native format such as:
if ($^O ne 'VMS')
{$thisperl .= $Config{_exe} unless $thisperl =~ m/$Config{_exe}$/i;}
+=head2 Networking
+
+Don't assume that you can reach the public Internet.
+
+Don't assume that there is only one way to get through firewalls
+to the public Internet.
+
+Don't assume that you can reach outside world through any other port
+than 80, or some web proxy. ftp is blocked by many firewalls.
+
+Don't assume that you can send email by connecting to the local SMTP port.
+
+Don't assume that you can reach yourself or any node by the name
+'localhost'. The same goes for '127.0.0.1'. You will have to try both.
+
+Don't assume that the host has only one network card, or that it
+can't bind to many virtual IP addresses.
+
+Don't assume a particular network device name.
+
+Don't assume a particular set of ioctl()s will work.
+
+Don't assume that you can ping hosts and get replies.
+
+Don't assume that any particular port (service) will respond.
+
+Don't assume that Sys::Hostname() (or any other API or command)
+returns either a fully qualified hostname or a non-qualified hostname:
+it all depends on how the system had been configured. Also remember
+things like DHCP and NAT-- the hostname you get back might not be very
+useful.
+
+All the above "don't":s may look daunting, and they are -- but the key
+is to degrade gracefully if one cannot reach the particular network
+service one wants. Croaking or hanging do not look very professional.
+
=head2 Interprocess Communication (IPC)
In general, don't directly access the system in code meant to be
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>,
-C<\000>, C<\040>, or nothing depending on the file organiztion and
+C<\000>, C<\040>, or nothing depending on the file organization and
record format. The VMS::Stdio module provides access to the
special fopen() requirements of files with unusual attributes on VMS.
C<-x> (or C<-X>) determine if a file has an executable file type.
(S<RISC OS>)
-=item alarm SECONDS
-
-=item alarm
-
-Not implemented. (Win32)
-
=item binmode FILEHANDLE
Meaningless. (S<Mac OS>, S<RISC OS>)
ReliantUNIX (formerly SINIX)
OpenBSD
OpenVMS (formerly VMS)
- Open UNIX (formerly Unixware) (since Perl 5.8.1/5.9.0)
+ Open UNIX (Unixware) (since Perl 5.8.1/5.9.0)
OS/2
OS/400 (using the PASE) (since Perl 5.8.1/5.9.0)
PowerUX
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<perlmachten>, L<perlmacos>, L<perlmacosx>, 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>,