Array::Diff returns an array-reference, see the modified example below:
use warnings;
use strict;
use Array::Diff;
use Data::Dumper;
my @old = ( 'a', 'b', 'c' );
my @new = ( 'b', 'c', 'd' );
my $diff = Array::Diff->diff( \@old, \@new );
my $cnt = $diff->count;
my $add_ref = $diff->added; # Array::Diff returns an array-referen
+ce
my $del_ref = $diff->deleted;
print "cnt=$cnt\n";
print "add: ", Dumper( $add_ref ), "\n";
print "del: ", Dumper( $del_ref ), "\n";
print "add-list: ", @{$add_ref}, "\n";
print "del-list: ", @{$del_ref}, "\n";
__END__
cnt=2
add: $VAR1 = [
'd'
];
del: $VAR1 = [
'a'
];
add-list: d
del-list: a