perlfunc updates (against 55)
[p5sagit/p5-mst-13.2.git] / pod / perlport.pod
index 6faa0d0..c1a5483 100644 (file)
@@ -148,6 +148,13 @@ And this example is actually better than the previous one even for Unix
 platforms, because now any C<\015>'s (C<\cM>'s) are stripped out
 (and there was much rejoicing).
 
+An important thing to remember is that functions that return data
+should translate newlines when appropriate.  Often one line of code
+will suffice:
+
+       $data =~ s/\015?\012/\n/g;
+       return $data;
+
 
 =head2 Numbers endianness and Width
 
@@ -175,7 +182,7 @@ transfer and store numbers always in text format, instead of raw
 binary, or consider using modules like C<Data::Dumper> (included in
 the standard distribution as of Perl 5.005) and C<Storable>.
 
-=head2 Files
+=head2 Files and Filesystems
 
 Most platforms these days structure files in a hierarchical fashion.
 So, it is reasonably safe to assume that any platform supports the
@@ -194,6 +201,14 @@ LPT:).
 
 S<Mac OS> uses C<:> as a path separator instead of C</>.
 
+The filesystem may support neither hard links (C<link()>) nor
+symbolic links (C<symlink()>, C<readlink()>, C<lstat()>).
+
+The filesystem may not support neither access timestamp nor change
+timestamp (meaning that about the only portable timestamp is the
+modification timestamp), or one second granularity of any timestamps
+(e.g. the FAT filesystem limits the time granularity to two seconds).
+
 VOS perl can emulate Unix filenames with C</> as path separator.  The
 native pathname characters greater-than, less-than, number-sign, and
 percent-sign are always accepted.
@@ -252,8 +267,11 @@ Likewise, if using C<AutoSplit>, try to keep the split functions to
 make it so the resulting files have a unique (case-insensitively)
 first 8 characters.
 
-Don't assume C<E<gt>> won't be the first character of a filename.  Always
-use C<E<lt>> explicitly to open a file for reading.
+There certainly can be whitespace in filenames.  Many systems (DOS,
+VMS) cannot have more than one C<"."> in their filenames.
+
+Don't assume C<E<gt>> won't be the first character of a filename.
+Always use C<E<lt>> explicitly to open a file for reading.
 
     open(FILE, "<$existing_file") or die $!;
 
@@ -559,7 +577,8 @@ Also see:
 =item The djgpp environment for DOS, C<http://www.delorie.com/djgpp/>
 
 =item The EMX environment for DOS, OS/2, etc. C<emx@iaehv.nl>,
-C<http://www.juge.com/bbs/Hobb.19.html>
+C<http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.html> or
+C<ftp://hobbes.nmsu.edu/pub/os2/dev/emx>
 
 =item Build instructions for Win32, L<perlwin32>.
 
@@ -757,12 +776,12 @@ delimiting character, VOS files, directories, or links whose names
 contain a slash character cannot be processed.  Such files must be
 renamed before they can be processed by Perl.
 
-The following C functions are unimplemented on VOS, any any attempt by
+The following C functions are unimplemented on VOS, and any attempt by
 Perl to use them will result in a fatal error message and an immediate
-exit from Perl:  dup, do_aspawn, do_spawn, execlp, execl, execvp, fork,
-waitpid.  Once these functions become available in the VOS POSIX.1
-implementation, you can either recompile and rebind Perl, or you can
-download a newer port from ftp.stratus.com.
+exit from Perl:  dup, do_aspawn, do_spawn, fork, waitpid.  Once these
+functions become available in the VOS POSIX.1 implementation, you can
+either recompile and rebind Perl, or you can download a newer port from
+ftp.stratus.com.
 
 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
@@ -1314,6 +1333,9 @@ method of spawning a process. (Win32)
 
 Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
+Link count not updated because hard links are not quite that hard
+(They are sort of half-way between hard and soft links). (AmigaOS)
+
 =item lstat FILEHANDLE
 
 =item lstat EXPR
@@ -1347,6 +1369,8 @@ open to C<|-> and C<-|> are unsupported. (S<Mac OS>, Win32, S<RISC OS>)
 
 Not implemented. (S<Mac OS>)
 
+Very limited functionality. (MiNT)
+
 =item readlink EXPR
 
 =item readlink
@@ -1444,6 +1468,11 @@ the child program uses a compatible version of the emulation library.
 I<scalar> will call the native command line direct and no such emulation
 of a child Unix program will exists.  Mileage B<will> vary.  (S<RISC OS>)
 
+Far from being POSIX compliant.  Because there may be no underlying
+/bin/sh tries to work around the problem by forking and execing the
+first token in its argument string.  Handles basic redirection
+("E<lt>" or "E<gt>") on its own behalf. (MiNT)
+
 =item times
 
 Only the first entry returned is nonzero. (S<Mac OS>)
@@ -1473,6 +1502,9 @@ should not be held open elsewhere. (Win32)
 
 Returns undef where unavailable, as of version 5.005.
 
+C<umask()> works but the correct permissions are only set when the file
+is finally close()d. (AmigaOS)
+
 =item utime LIST
 
 Only the modification time is updated. (S<Mac OS>, VMS, S<RISC OS>)
@@ -1500,6 +1532,15 @@ Not useful. (S<RISC OS>)
 
 =over 4
 
+=item v1.39, 11 February, 1999
+
+Changes from Jarkko and EMX URL fixes Michael Schwern.  Additional
+note about newlines added.
+
+=item v1.38, 31 December 1998
+
+More changes from Jarkko.
+
 =item v1.37, 19 December 1998
 
 More minor changes.  Merge two separate version 1.35 documents.
@@ -1560,6 +1601,7 @@ Peter Prymmer E<lt>pvhp@forte.comE<gt>,
 Hugo van der Sanden E<lt>hv@crypt0.demon.co.ukE<gt>,
 Gurusamy Sarathy E<lt>gsar@umich.eduE<gt>,
 Paul J. Schinder E<lt>schinder@pobox.comE<gt>,
+Michael G Schwern E<lt>schwern@pobox.comE<gt>,
 Dan Sugalski E<lt>sugalskd@ous.eduE<gt>,
 Nathan Torkington E<lt>gnat@frii.comE<gt>.
 
@@ -1568,5 +1610,4 @@ E<lt>pudge@pobox.comE<gt>.
 
 =head1 VERSION
 
-Version 1.37, last modified 19 December 1998
-
+Version 1.39, last modified 11 February 1999