X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlport.pod;h=c04528bb778b7bf6d07a460385a490cc04496212;hb=593b9c1462e1fc8a2425e215f64b2197e1bfb796;hp=ffa8904d2bbed40e7cf50bccd4007cd13285ceac;hpb=bbac04ed8cd43991be4ad2af52ee5af30eb4a52c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlport.pod b/pod/perlport.pod index ffa8904..c04528b 100644 --- a/pod/perlport.pod +++ b/pod/perlport.pod @@ -192,8 +192,8 @@ 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 + 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 @@ -487,6 +487,42 @@ To convert $Config{perlpath} to a file pathname, say: 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 @@ -2105,40 +2141,43 @@ available at http://www.cpan.org/src/index.html AIX BeOS + BSD/OS (BSDi) Cygwin DG/UX DOS DJGPP 1) DYNIX/ptx EPOC R5 FreeBSD + HI-UXMPP (Hitachi) (5.8.0 worked but we didn't know it) HP-UX IRIX Linux Mac OS Classic - Mac OS X (Darwin) + Mac OS X (Darwin) MPE/iX NetBSD NetWare NonStop-UX - ReliantUNIX (SINIX) + ReliantUNIX (formerly SINIX) OpenBSD - OpenVMS (VMS) + OpenVMS (formerly VMS) + 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 - POSIX-BC (BS2000) + POSIX-BC (formerly BS2000) QNX Solaris SunOS 4 - SUPER-UX - Tru64 UNIX (DEC OSF/1, Digital UNIX) + SUPER-UX (NEC) + Tru64 UNIX (formerly DEC OSF/1, Digital UNIX) UNICOS UNICOS/mk UTS VOS Win95/98/ME/2K/XP 2) WinCE - z/OS (OS/390) + z/OS (formerly OS/390) VM/ESA 1) in DOS mode either the DOS or OS/2 ports can be used @@ -2230,7 +2269,7 @@ http://www.cpan.org/ports/index.html for binary distributions. L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, -L, L, L, L, +L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,