my %hash = ( 'one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5);
my %dependencies =( 'one' => [], 'two' => [], 'three' => ['four'], 'four' => ['one','two'], 'five' => ['three']);
####
sub my_del($){
while (my $key = each (%hash)){
print "KEY = $key\n";
foreach (@{ $dependencies{$key} }){
if( $_ eq $_[0]){
print"Going to call sub for $key\n";
my_del($key);
}
}
print"\n";
}
delete $hash{$_[0]};
print "Deleting $_[0]\n";
}
my_del('one');
####
KEY = three
KEY = five
KEY = one
KEY = two
KEY = four
Going to call sub for four
Deleting four
KEY = three
KEY = five
KEY = one
KEY = two
Deleting one
####
my %dependencies =( 'one' => [], 'two' => [], 'three' => ['one'], 'four' => ['three','two'], 'five' => ['three']);
####
KEY = three
Going to call sub for three
KEY = five
Going to call sub for five
KEY = one
KEY = two
KEY = four
Deleting five
KEY = three
KEY = one
KEY = two
KEY = four
Going to call sub for four
Deleting four
KEY = three
KEY = one
KEY = two
Deleting three
KEY = one
KEY = two
Deleting one