We’ll start with a quick review of the native filesystems for each of our target operating systems. Some of this may be old news to you, especially if you have significant experience with a particular operating system. Still, it is worth your while to pay careful attention to the differences between the filesystems (especially the ones you don’t know) if you intend to write Perl code that works on multiple platforms.
modern Unix variants ship with a native filesystem with semantics
that resemble those of their common ancestor, the Berkeley Fast File
System. Different vendors have extended their filesystem
implementations in different ways (e.g., Solaris adds Access Control
Lists for better security, Digital Unix ships a spiffy
transaction-based filesystem called
etc.). We’ll be writing code aimed at the lowest common
denominator to allow it to work across different Unix
The top, or root, of a Unix filesystem is indicated by a forward
/). To uniquely identify a file or directory in a Unix filesystem, we construct a path starting with a slash and then add directories, separating them with forward slashes, as we descend deeper into the filesystem. The final component of this path is the desired directory or filename. Directory and filenames in modern Unix variants are case sensitive. Almost all ASCII characters can be used in these names if you are crafty enough, but sticking to alphanumeric characters and some limited punctuation ...