bioperl-live
                                
                                 bioperl-live copied to clipboard
                                
                                    bioperl-live copied to clipboard
                            
                            
                            
                        Bio::Species still memory leak
The Bio::Species module still has memory leak problem. Can it be solved completely? And the host of bioperl is now http://bioperl.org/, not http://bioperl.open-bio.org/ any more.
Can you supply some example code to demonstrate this?
use 5.010;
use Bio::Root::Version;
use Devel::Cycle;
use Scalar::Util qw/weaken/;
use Bio::Species;
say $Bio::Root::Version::VERSION;
my $mom = {
    name => "Marilyn Lester",
};
 
my $me = {
    name => "Andy Lester",
    mother => $mom,
};
$mom->{son} = $me;
#weaken($mom->{son});
&find_cycle($me);
&find_weakened_cycle($me);
my $species = Bio::Species->new(-classification => [qw( sapiens Homo Hominidae
                             Catarrhini Primates Eutheria
                             Mammalia Vertebrata Chordata
                             Metazoa Eukaryota )]);
&find_cycle($species);
&find_weakened_cycle($species);
#output
1.007001
Cycle (1):
	                $A->{'mother'} => \%B                           
	               w-> $B->{'son'} => \%A                           
Cycle (1):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
	 $Bio::Taxon::M->{'_ancestor'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
Cycle (2):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
Cycle (3):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
Cycle (4):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
Cycle (5):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
Cycle (6):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
Cycle (7):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
Cycle (8):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
Cycle (9):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
Cycle (10):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	     $Bio::Taxon::E->{'_desc'} => \%X                           
	                     $X->{'1'} => \%Bio::Taxon::D               
Cycle (11):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	 $Bio::Taxon::M->{'_ancestor'} => \%Bio::Taxon::N               
Cycle (12):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
Cycle (13):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
Cycle (14):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
Cycle (15):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
Cycle (16):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
Cycle (17):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
Cycle (18):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
Cycle (19):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
Cycle (20):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
	     $Bio::Taxon::E->{'_desc'} => \%X                           
	                     $X->{'1'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
Cycle (1):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
	 $Bio::Taxon::M->{'_ancestor'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
Cycle (2):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
Cycle (3):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
Cycle (4):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
Cycle (5):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
Cycle (6):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
Cycle (7):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
Cycle (8):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
Cycle (9):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
Cycle (10):
	   $Bio::Species::C->{'taxon'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
	     $Bio::Taxon::E->{'_desc'} => \%X                           
	                     $X->{'1'} => \%Bio::Taxon::D               
Cycle (11):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	 $Bio::Taxon::M->{'_ancestor'} => \%Bio::Taxon::N               
Cycle (12):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	 $Bio::Taxon::L->{'_ancestor'} => \%Bio::Taxon::M               
Cycle (13):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	 $Bio::Taxon::K->{'_ancestor'} => \%Bio::Taxon::L               
Cycle (14):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	 $Bio::Taxon::J->{'_ancestor'} => \%Bio::Taxon::K               
Cycle (15):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	 $Bio::Taxon::I->{'_ancestor'} => \%Bio::Taxon::J               
Cycle (16):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	 $Bio::Taxon::H->{'_ancestor'} => \%Bio::Taxon::I               
Cycle (17):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	 $Bio::Taxon::G->{'_ancestor'} => \%Bio::Taxon::H               
Cycle (18):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	 $Bio::Taxon::F->{'_ancestor'} => \%Bio::Taxon::G               
Cycle (19):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
	 $Bio::Taxon::E->{'_ancestor'} => \%Bio::Taxon::F               
Cycle (20):
	    $Bio::Species::C->{'tree'} => \%Bio::Tree::Tree::Y          
	$Bio::Tree::Tree::Y->{'_rootnode'} => \%Bio::Taxon::N               
	     $Bio::Taxon::N->{'_desc'} => \%O                           
	                    $O->{'20'} => \%Bio::Taxon::M               
	     $Bio::Taxon::M->{'_desc'} => \%P                           
	                    $P->{'18'} => \%Bio::Taxon::L               
	     $Bio::Taxon::L->{'_desc'} => \%Q                           
	                    $Q->{'16'} => \%Bio::Taxon::K               
	     $Bio::Taxon::K->{'_desc'} => \%R                           
	                    $R->{'14'} => \%Bio::Taxon::J               
	     $Bio::Taxon::J->{'_desc'} => \%S                           
	                    $S->{'12'} => \%Bio::Taxon::I               
	     $Bio::Taxon::I->{'_desc'} => \%T                           
	                    $T->{'10'} => \%Bio::Taxon::H               
	     $Bio::Taxon::H->{'_desc'} => \%U                           
	                     $U->{'8'} => \%Bio::Taxon::G               
	     $Bio::Taxon::G->{'_desc'} => \%V                           
	                     $V->{'6'} => \%Bio::Taxon::F               
	     $Bio::Taxon::F->{'_desc'} => \%W                           
	                     $W->{'4'} => \%Bio::Taxon::E               
	     $Bio::Taxon::E->{'_desc'} => \%X                           
	                     $X->{'1'} => \%Bio::Taxon::D               
	 $Bio::Taxon::D->{'_ancestor'} => \%Bio::Taxon::E               
In order to remove the cycles the internal structure has to be refactored significantly. Given that this module is planned for deprecation I'm not sure we'll be able to find a volunteer, but I could be wrong about that.
I agree w/ @bosborne , unless someone steps up on fixing this I'm more in favor of a simpler refactor. Basically the reworking of Bio::Species has added a lot of overhead that, while useful, can't be opted out of. I would rather have a simpler Bio::AnnotationI that give the option of generating and sending a tree back upon request vs doing the up-front contortions needed for traversing taxonomy run by default.