The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::dupfind::Guts - Private methods supporting the App::dupfind::Common public interface

VERSION

version 0.172690

DESCRIPTION

These are private methods that are the underpinnings of the more friendly, high-level public methods in App::dupfind::Common, which is where you should go if you're searching for documentation on the App::dupfind namespace.

Please don't use this module by itself. It is for internal use only.

ATTRIBUTES

weed_pass_map

Conversion table for user-friendly names to the weeding algorithms to their internal method names.

stats

R/W Hashref accessor used for internally storing statistics (specifically with regard to cache hits/misses during the digest_dups phase)

METHODS

_plan_weed_passes

Based on either or both the default settings and the user-specified weed-out algorithms to run on potential duplicates before resorting to calculating digests, this private method builds the ordered execution plan which is then carried out by $self->_pull_weeds

_pull_weeds

Runs the weed-out passes against the datastructure containing the list of potential file duplicates. A weed-out pass is simply the implementation of a particular algorithm that can be run against a file or files in order to determine the uniqueness of a file.

Weeding is typically much more efficient than calculating the digests of files and so these digests are only calculated as a last resort. Weeding out files doesn't always get rid of all potential duplicates. When it doesn't, that's when you either (based on user input) run another different type of weeding algorithm or fall back directly on file hashing (digests).

_do_weed_pass

Runs a single given weed-out pass against the list of potential file duplicates.

Keeps track of how many files it has scanned, how many non-duplicates it ruled out, and how many potential duplicates remain.