#load hash after some parsing in a foreach loop
push(@{$jobs{$JobName}{1}}, $blah);
...
$level =1;
$nextlevel = 2;
while ($level <= 10) {
foreach my $dep (keys %jobs) {
foreach (@{$jobs{$dep}{$level}}) {
print "$dep $level $_\n";
push( @{$jobs{$dep}{$nextlevel}},@{$jobs{$_}{$level}} );
next if ${$jobs{$_}{$level}}[0] eq "$dep";
last if ${$jobs{$_}{$level}}[0] eq ''; #this cancels the loop if any of the dependencies don't have dependencies, which is a problem if there's additional
}
}
$level++;
$nextlevel++;
}
####
job1,
job2,job1,
job3,job2
job4,job2
job5,job2,job4
job6,jobz
joba,job4,jobb
jobz,jobbc,job2
####
while ($level <= 10) {
foreach $dep (keys %jobs) {
foreach (@{$jobs{$dep}{$level}}) {
print "Key:$dep Value:$_ Lvl:$level Seen:$seen{$_}\n";
if ($seen{$_} eq '') { push( @{$jobs{$dep}{$nextlevel}},@{$jobs{$_}{$level}} ); }
$seen{$_} = 1;
next if ${$jobs{$_}{$level}}[0] eq "$dep";
last if $seen{$_} == 1;
}
}
%seen = '';
@temparray = '';
$level++;
$nextlevel++;
}