#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Array::Utils qw(:all); my %HoA = ( Fruits => [ "Apple", "Orange", "Banana", "Grapes" ], Fruits1 => [ "Apples", "Orange", "pineapple", "Grapes" ], ); # print Dumper \%HoA; =sample of Hash of Arrays output $VAR1 = { 'Fruits1' => [ 'Apples', 'Orange', 'pineapple', 'Grapes' ], 'Fruits' => [ 'Apple', 'Orange', 'Banana', 'Grapes' ] }; =cut my @AoAValues = sort values %HoA; # print Dumper \@AoAValues; =sample of Array of Arrays from values $VAR1 = [ [ 'Apple', 'Orange', 'Banana', 'Grapes' ], [ 'Apples', 'Orange', 'pineapple', 'Grapes' ] ]; =cut # get items from array @{$AoAValues[1]} that are not in array @{$AoAValues[0]} # my @diff = array_minus( @{$AoAValues[1]}, @{$AoAValues[0]} ); my %hash; $hash{'difference'} = [ array_minus( @{$AoAValues[1]}, @{$AoAValues[0]} ) ]; print Dumper \%hash; __END__ $VAR1 = { 'difference' => [ 'Apples', 'pineapple' ] };