my %output_reports; foreach my $main (@{$data->{"mains"}}) { my $uniq_main = 1; foreach my $new_main (@{$output_reports{"mains"}}) { if ($main->{"main_path"} eq $new_main->{"main_path"} && $main->{"main_name"} eq $new_main->{"main_name"}) { $uniq_main = 0; my $uniq_sub = 1; foreach my $sub (@{$main->{"subs"}}) { foreach my $new_sub (@{$new_main->{"subs"}) { if ($sub->{"sub_path"} eq $new_sub->{"sub_path"} && $sub->{"sub_name"} eq $new_sub->{"sub_name"}) { # Stuck here - I need the timestamp } } } } } if ($uniq_main) { push(@{$output_reports{"mains"}},$main); } }