summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1998-12-23 10:38:18 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1998-12-23 10:38:18 +0000
commit433acd8a47ae1642ba234baa73b43933be6a53e5 (patch)
tree1738ff70711b2079b0d7c66d0efd34912d8af790 /pod
parent6b1016b5e1f44bcb47d99dc977f7ab2fbed66b2a (diff)
downloadperl-433acd8a47ae1642ba234baa73b43933be6a53e5.tar.gz
More porting notes about filesystems, AmigaOS, and MiNT.
p4raw-id: //depot/cfgperl@2500
Diffstat (limited to 'pod')
-rw-r--r--pod/perlport.pod32
1 files changed, 28 insertions, 4 deletions
diff --git a/pod/perlport.pod b/pod/perlport.pod
index 6faa0d0659..7a03c12998 100644
--- a/pod/perlport.pod
+++ b/pod/perlport.pod
@@ -175,7 +175,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 +194,14 @@ LPT:).
S<Mac OS> uses C<:> as a path separator instead of C</>.
+The filesystem may not 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 +260,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 $!;
@@ -829,7 +840,7 @@ an effect on what happens with some perl functions (such as C<chr>,
C<pack>, C<print>, C<printf>, C<ord>, C<sort>, C<sprintf>, C<unpack>), as
well as bit-fiddling with ASCII constants using operators like C<^>, C<&>
and C<|>, not to mention dealing with socket interfaces to ASCII computers
-(see L<Newlines>).
+(see L<"NEWLINES">).
Fortunately, most web servers for the mainframe will correctly translate
the C<\n> in the following statement to its ASCII equivalent (note that
@@ -1314,6 +1325,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 +1361,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 +1460,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 ("<" or
+">") on its own behalf. (MiNT)
+
=item times
Only the first entry returned is nonzero. (S<Mac OS>)
@@ -1473,6 +1494,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.
+
=item utime LIST
Only the modification time is updated. (S<Mac OS>, VMS, S<RISC OS>)