my ($source,$target); for my $item (@$all) { if ( $item->{code} eq 'XXY' ) { $source = $item; $target->{expdate} = $item->{expdate} if defined $target; } if ( $item->{code} eq 'YYK' ) { $target = $item; $item->{expdate} = $source->{expdate} if defined $source; } }