{
'number_of_subs' => 5,
'report_map' => 'test5',
'number_of_mains' => 2,
'ystem_start_time' => '1564574677317',
'system_id' => '453521412412',
'timestamp' => 1564574676,
'user' => 'asdasvb'
'mains' => [
{
'main_path' => 'play_ground/MAIN',
'subs' => [
{
'info' => [
{
'version' => [
'tcsh'
],
'group' => 'pkgs'
},
{
'version' => [
'6.13.00'
],
'group' => 'tcsh'
}
],
'sub_path' => 'GROUP1/Test1',
'sub_name' => 'Test1'
},
{
'data' => [
{
'version' => [
'tcsh'
],
'group' => 'pkgs'
},
{
'version' => [
'6.13.00'
],
'group' => 'tcsh'
}
],
'sub_path' => 'GROUP2',
'sub_name' => 'GROUP2'
},
{
'info' => [
{
'version' => [
'3.14'
],
'group' => 'A'
},
{
'version' => [
'2.56'
],
'group' => 'B'
},
{
'version' => [
'6.13.00',
'6.14.00'
],
'group' => 'C'
}
],
'sub_path' => 'Test1',
'sub_name' => 'Test1'
}
],
'main_name' => 'MAIN'
},
{
'main_path' => 'play_ground/MAIN1',
'subs' => [
{
'info' => [
{
'version' => [
'tcsh'
],
'group' => 'pkgs'
},
{
'version' => [
'6.13.00'
],
'group' => 'tcsh'
}
],
'sub_path' => 'TEST2/SUB1',
'sub_group' => 'SUB1'
},
{
'info' => [
{
'version' => [
'tcsh'
],
'group' => 'pkgs'
},
{
'version' => [
'6.13.00'
],
'group' => 'tcsh'
}
],
'sub_path' => 'TEST2/SUB2',
'sub_name' => 'SUB2'
}
],
'main_name' => 'MAIN1'
}
],
}
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "ABC", version ="4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub2
sub_path: path/to/sub2
info: { group = "ABC", version = "1.5.6","4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "ABC", version = "1.5.6","4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "XYZ", version = "1.5.6","4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "XYZ", version = "1.5.6","4.2.1" }
main_name: ROOT_OTHER
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "ABC", version = "4.2.1" }
subs2:
sub_name: sub2
sub_path: path/to/sub2
info: { group = "ABC", version = "1.5.6","4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "ABC", version ="4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "XYZ", version = "1.5.6","4.2.1" },{ group = "ABC", version ="4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
####
main1:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "ABC", version ="4.2.1" }
main_name: ROOT
main_path: /PATH/TO/ROOT
main2:
subs1:
sub_name: sub1
sub_path: path/to/sub1
info: { group = "XYZ", version = "1.5.6","4.2.1" }
main_name: ROOT_OTHER
main_path: /PATH/TO/ROOT
####
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);
}
}