use hash not list-walk
Ed J
3 years ago
229 | 229 | sub load_deps { |
230 | 230 | my $self = shift; |
231 | 231 | my @load = grep { not $self->{deps}{$_} } keys %{ $self->{deps} }; |
232 | my %in_load; @in_load{@load} = (); | |
232 | 233 | foreach my $d (@load) { |
233 | 234 | my $dep = load ($d); |
234 | 235 | $self->{deps}{$d} = $dep; |
238 | 239 | unless |
239 | 240 | $self->{deps}{$childdep} |
240 | 241 | or |
241 | grep {$_ eq $childdep} @load; | |
242 | exists $in_load{$childdep}; | |
242 | 243 | } |
243 | 244 | } |
244 | 245 | } |