+<latemp_subject "Files and Directories Handling in Perl" />
+Perl has strong support for handling files and directories, which are the
+bread-and-butter of dealing with the disk and the filesystem. Many modules
+on <a href="$(ROOT)/cpan/">CPAN (= the Comprehensive Perl Archive Network)</a>
+aim to facilitate the task even further.
+<h2 id="basics">The Basics</h2>
+For the basics, read about the open function (on
+<pdoc d="perlopentut"></pdoc> or
+on <a href="$(ROOT)/resources/">recommended books or tutorials</a>) as well as
+<pdoc_f f="opendir">opendir</pdoc_f>, <pdoc_f f="readdir">readdir</pdoc_f>,
+<pdoc_f f="closedir">closedir</pdoc_f>, <pdoc_f f="mkdir">mkdir</pdoc_f>. There
+are also many UNIX-oriented file-system-builtins listed on <pdoc d="perlfunc"></pdoc> which may prove of utility.
+Useful modules for files and directories handling are:
+<a href="http://perldoc.perl.org/File/Spec.html">File::Spec</a> - a core module
+to handle file and directory paths portably.
+<cpan_self_dist d="String-ShellQuote" />
+- quote strings for passing through the shell. Also see the list forms of
+<cpan_self_mod m="File::Path" /> - a core module to create or remove directory
+<cpan_self_mod m="File::Copy" /> - a core module to copy files.
+<cpan_self_dist d="IO-All" /> - an all-in-one
+IO package with a lot of syntactic sugar. Non-core.
+<h3 id="directory_traversal">Directory Traversal</h3>
+The built-in module for traversing a directory tree in Perl is
+<cpan_self_mod m="File::Find" />, but it has some severe limitations in interface
+and use. Some better alternatives are:
+<a href="http://www.shlomifish.org/open-source/projects/File-Find-Object/">File-Find-Object</a> - an object-oriented replacement for File::Find that:
+1) can be instantiated 2) has an iterative interface 3) can be interrupted in
+the middle and 4) can return result objects instead of path names.
+<cpan_self_dist d="File-Next" /> - an alternative with an iterative interface,
+but incapable of being instantiated.
+<cpan_self_dist d="File-Find-Rule" />, which is still based on File::Find, and
+<cpan_self_dist d="File-Find-Object-Rule" /> provide a more convenient and
+succinct interface for finding what you want.