9 my ($src, $dst) = /(\w) must be.* (\w) can/;
10 $prereqs{$dst}->{$src} = 1;
11 $steps{$src} = ord($src)-ord('A')+61;
12 $steps{$dst} = ord($dst)-ord('A')+61;
18 my @avail = sort grep { keys %{ $prereqs{$_} } == 0 } keys %steps;
19 for my $step (splice @avail, 0, 5) {
20 next if --$steps{$step} > 0;
22 for my $p (keys %prereqs) {
23 delete $prereqs{$p}->{$step};