use warnings; use strict; use lib qw( /rshome/jaw2/lib/site_perl/5.8.0 ); use Algorithm::Diff qw( diff ); my @a = qw( 1.0 2.1 3.2 4.0 4.9 5.8 ); my @b = qw( 1.0 2.0 3.0 4.0 5.0 6.0 ); my @d = diff( \@a, \@b, sub { my( $o ) = @_; #my( $o, $aa, $bb ) = @_; #no strict 'refs'; my $d = abs( $a - $b ); #my $d = abs( $$aa - $$bb ); if( $d <= 0.1 ) { my $avg = sprintf "%14.6e", ( $a + $b ) / 2; #my $avg = sprintf "%14.6e", ( $$aa + $$bb ) / 2; return $avg; } return $o; } ); #####'a', 'b' #my @d = diff( \@a, \@b, \&mykeygen, 'a', 'b' ); #my @d = diff( \@a, \@b, \&mykeygen, { 'a' => '$_[0]', 'b' => '$_[1]' } ); #my @d = diff( \@a, \@b, \&mykeygen, '$_[0]', '$_[1]' ); print "d array:\n", join( "\n\t", @d ), "\n";