keys
Devuelve un arreglo con las llaves de la tabla asociativa pasada como parámetro. Es muy útil
para realizar bucles iterativos sobre tablas.
my $codon;
my %codones = ('GCC'=>'Ala','GCG'=>'Ala','ATG'=>'Met');
my @llaves = keys(%codones);
foreach $codon (@llaves)
{
print "$codon $codones{ $codon } \n";
}
foreach $codon (sort (@llaves)) # itera sobre las llaves ordenadas alfabéticamente
{
print "$codon $codones{ $codon } \n";
}
values
Devuelve un arreglo con los valores de la tabla asociativa pasada como parámetro.
my $codon;
my %codones = ('GCC'=>'Ala','ATG'=>'Met');
my @valores = values(%codones); # contiene 'Ala' y 'Met'
Aprovecho aquí para mostraros como se pueden ordenar las tablas asociativas por valor. Como es lógico, la solución pasa por ordenar las llaves por sus valores asociados:
my @llaves_ordenadas = sort {$hash{$a} <=> $hash{$b}} ( keys(%hash) );