#!/usr/bin/perl print "Content-type: text/plain\n\n"; use strict; use Data::Dumper; my @AoH_all = ( { name => "Bill", id => 1 }, { name => "Mike", id => 3 } ); my @AoH_one = ( { name => "Bill", id => 1 } ); my $AoH_all = \@AoH_all; my $AoH_dup = \@AoH_all; my $AoH_one = \@AoH_one; for my $j (0 .. $#$AoH_all) { for my $i (0 ..$#$AoH_one) { if ($AoH_one->[$i]{'id'} == $AoH_all->[$j]{'id'}) { splice( @{$AoH_dup}, $j, 1 ); } } } print Dumper($#$AoH_dup, $AoH_dup )."\n"; #### $VAR1 = 0; $VAR2 = [{'id' =>1, 'name' => 'Bill'}]; #### $VAR1 = 1; $VAR2 = [{'id' =>3, 'name' => 'Mike'}, {} ]; #### delete $AoH_dup->[$j]{'name'}; delete $AoH_dup->[$j]{'id'}; delete $AoH_dup->[$j]; #### $VAR1 = 1; $VAR2 = [ undef,{'id' =>3, 'name' => 'Mike'} ];