Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

array::diff(3pm) [debian man page]

Array::Diff(3pm)					User Contributed Perl Documentation					  Array::Diff(3pm)

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 arrays and returns the added or deleted elements in two separate arrays. It's a simple wrapper around Algorithm::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", and "count" 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", and "removed" properties, or as a static method, in which case it will return a newly-created "Array::Diff" object with the properies set appropriately. added ( [VALUES ] ) Get or set the elements present in the "NEW" array and absent in the "OLD" one at the comparison performed by the last "diff()" invocation. deleted ( [VALUES] ) Get or set the elements present in the "OLD" array and absent in the "NEW" one at the comparison performed by the last "diff()" 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 the "added" and "deleted" properties. SEE ALSO
Algorithm::Diff 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. perl v5.10.1 2010-10-08 Array::Diff(3pm)

Check Out this Related Man Page

Algorithm::DiffOld(3)					User Contributed Perl Documentation				     Algorithm::DiffOld(3)

NAME
Algorithm::DiffOld - Compute `intelligent' differences between two files / lists but use the old (<=0.59) interface. NOTE
This has been provided as part of the Algorithm::Diff package by Ned Konz. This particular module is ONLY for people who HAVE to have the old interface, which uses a comparison function rather than a key generating function. Because each of the lines in one array have to be compared with each of the lines in the other array, this does M*N comparisions. This can be very slow. I clocked it at taking 18 times as long as the stock version of Algorithm::Diff for a 4000-line file. It will get worse quadratically as array sizes increase. SYNOPSIS
use Algorithm::DiffOld qw(diff LCS traverse_sequences); @lcs = LCS( @seq1, @seq2, $comparison_function ); $lcsref = LCS( @seq1, @seq2, $comparison_function ); @diffs = diff( @seq1, @seq2, $comparison_function ); traverse_sequences( @seq1, @seq2, { MATCH => $callback, DISCARD_A => $callback, DISCARD_B => $callback, }, $comparison_function ); COMPARISON FUNCTIONS
Each of the main routines should be passed a comparison function. If you aren't passing one in, use Algorithm::Diff instead. These functions should return a true value when two items should compare as equal. For instance, @lcs = LCS( @seq1, @seq2, sub { my ($a, $b) = @_; $a eq $b } ); but if that is all you're doing with your comparison function, just use Algorithm::Diff and let it do this (this is its default). Or: sub someFunkyComparisonFunction { my ($a, $b) = @_; $a =~ m{$b}; } @diffs = diff( @lines, @patterns, &someFunkyComparisonFunction ); which would allow you to diff an array @lines which consists of text lines with an array @patterns which consists of regular expressions. This is actually the reason I wrote this version -- there is no way to do this with a key generation function as in the stock Algorithm::Diff. perl v5.18.2 2006-07-30 Algorithm::DiffOld(3)
Man Page