NAME

Data::Hash::Diff::Smart::Engine - Internal diff engine for Data::Hash::Diff::Smart

DESCRIPTION

This module implements the recursive diff algorithm used by Data::Hash::Diff::Smart. It is not intended to be used directly.

Features include:

  • recursive comparison of scalars, hashes, arrays, and objects

  • cycle detection to avoid infinite recursion

  • ignore rules (exact, regex, wildcard)

  • custom comparators per path

  • array diff modes: index, LCS, unordered

INTERNAL METHODS

diff($old, $new, %opts)

Entry point for computing a diff.

_diff($old, $new, $path, $changes, $ctx)

Recursive comparison routine.

_diff_scalar, _diff_hash, _diff_array

Type-specific comparison helpers.

_diff_array_index, _diff_array_lcs, _diff_array_unordered

Array diffing strategies.

_normalize_ignore, _is_ignored

Ignore rule processing.

_reftype, _eq

Utility helpers.

AUTHOR

Nigel Horne