This is a perfect example when to not use File::Find. It really isn't very hard to roll your own directory tree searcher while the File::Find call-back interface makes it impossible to traverse two directory trees at once.

Beside the standard gotchas to watch out for (don't follow symbolic links unless you do the extra work required, note that readdir of other than "." means you have to prepend the directory before you use the returned file names to get information about the files, don't use a global directory handle in opendir calls of a recursive subroutine, don't recurse into "." nor "..") also realize that readdir doesn't return file names in sorted order (while almost all globs do) so you'll want to sort (and ignore case when you sort if dealing with a file system that ignores case) before doing a merge-sort comparison to find missing/added/different files/directories (or files that became directories or vice versa).

                - tye

In reply to Re: Directory comparison (no call-backs) by tye
in thread Directory comparison by maxl90

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.