NAME

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

VERSION

Version 0.02

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.

LICENCE AND COPYRIGHT

Copyright 2026 Nigel Horne.

Usage is subject to licence terms.

The licence terms of this software are as follows:

  • Personal single user, single computer use: GPL2

  • All other users (including Commercial, Charity, Educational, Government) must apply in writing for a licence for use from Nigel Horne at the above e-mail.