X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlport.pod;h=c04528bb778b7bf6d07a460385a490cc04496212;hb=593b9c1462e1fc8a2425e215f64b2197e1bfb796;hp=cdf30ab18ac2b8e63226107e12fa35f47ce1dfa6;hpb=3ebac25bf00794df08226119e9ae3699268f48dc;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlport.pod b/pod/perlport.pod index cdf30ab..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 @@ -2233,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,