foreach my $gene ( @{ $first_clone->get_all_Genes() } ) { print $gene->stable_id(), "\n"; } #### my $gene_ref= $first_clone->get_all_Genes(); foreach my $gene (@$gene_ref) # or (@{$gene_ref}), the same. # extra {} only needed # when subscript is used { print $gene->stable_id(), "\n"; } #### my $genes = $first_clone->get_all_Genes(); while ( my $gene = shift @{$genes} ) { print $gene->stable_id(), "\n"; }