my %main = ( 'main1' => {'m1sec1'=> ['A','B','C'],},
'main2' => {'m2sec1'=> ['D','E','F'],},);
my %seed = ( 'seed' => {'seed1'=> ['X','Y','Z']},);
####
my %main = (
'main1' => {'m1sec1'=> ['A','B','C'],},
'main2' => {'m2sec1'=> ['D','E','F'],},
'main1-join' => {
'm1sec1'=> ['AX','BX','CX',
'AY','BY','CY',
'AZ','AY','AZ'],
},
'main2-join' => {
'm2sec1'=> ['DX','EX','FX',
'DY','EY','FY',
'DZ','EZ','FZ],
}
);
####
use Data::Dumper;
my %nhash;
foreach my $sd ( keys %seed )
{
foreach my $sdsub ( sort keys %{$seed{$sd}} )
{
my %temphash;
foreach my $valseed ( @{$seed{$sd}{$sdsub}} )
{
my $join;
INNER: foreach my $mn ( keys %main )
{
foreach my $msec ( sort keys %{$main{$mn}} )
{
my @store;
foreach my $valmain( @{$main{$mn}{$msec}} )
{
#print $valmain.$valseed,"\n";
$join = $valmain.$valseed;
push @store,$join;
last INNER if (length($join) > 2);
}
$temphash{$msec} = [ @store ];
$main{$mn."-join"} = {%temphash};
}
}
#print "$valseed\n";
}
}
}
print Dumper \%main ;