NAME
Array::Diff - Find the differences between two arrays
SYNOPSIS
my @old = ( 'a', 'b', 'c' );
my @new = ( 'b', 'c', 'd' );
my $diff = Array::Diff->diff( \@old, \@new );
$diff->count # 2
$diff->added # [ 'd' ];
$diff->deleted # [ 'a' ];
DESCRIPTION
This module compares two pre-sorted arrays and returns the added or deleted elements in two separate arrays. It's a simple wrapper around Algorithm::Diff.
Note: the arrays must be sorted before you call diff
.
And if you need more complex array tools, check Array::Compare.
METHODS
- new ()
-
Create a new
Array::Diff
object. - diff ( OLD, NEW )
-
Compute the differences between two arrays. The results are stored in the
added
,deleted
, andcount
properties that may be examined using the corresponding methods.This method may be invoked as an object method, in which case it will recalculate the differences and repopulate the
count
,added
, andremoved
properties, or as a static method, in which case it will return a newly-createdArray::Diff
object with the properties set appropriately. - added ( [VALUES ] )
-
Get or set the elements present in the
NEW
array and absent in theOLD
one at the comparison performed by the lastdiff()
invocation. - deleted ( [VALUES] )
-
Get or set the elements present in the
OLD
array and absent in theNEW
one at the comparison performed by the lastdiff()
invocation. - count ( [VALUE] )
-
Get or set the total number of added or deleted elements at the comparison performed by the last
diff()
invocation. This count should be equal to the sum of the number of elements in theadded
anddeleted
properties.
SEE ALSO
Array::Compare - performs the same function as this module, but has options for controlling how it works.
List::Compare - similar functionality, but again with more options.
Algorithm::Diff - the underlying implementation of the diff algorithm. If you've got Algorithm::Diff::XS installed, that will be used.
YAML::Diff - find difference between two YAML documents.
HTML::Differences - find difference between two HTML documents. This uses a more sane approach than HTML::Diff.
XML::Diff - find difference between two XML documents.
Hash::Diff - find the differences between two Perl hashes.
Data::Diff - find difference between two arbitrary data structures.
Text::Diff - can find difference between two inputs, which can be data structures or file names.
AUTHOR
Daisuke Murase <typester@cpan.org>
COPYRIGHT AND LICENSE
Copyright (c) 2009 by Daisuke Murase.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.