use strict; use warnings; my %teilnehmer = ( guenther => 27, christian => 22, mario => 26, martin => 26, joachim => 30, rudi => 23, fritz => 50, dennis => 39, daniel => 21, ); my @tn = keys %teilnehmer; my @alter = values %teilnehmer; my $i=0; foreach (sort {$a <=> $b} @alter) { printf "%s: %s\n", ++$i, $_; } my $i=0; foreach ( sort {substr($a,1,1) cmp substr($b,1,1)} @tn) { printf "%s: %s\n", ++$i, $_; } my @namen = sort {$teilnehmer{$a} <=> $teilnehmer{$b}} keys %teilnehmer; my $i=0; foreach (@namen) { printf "%s: %s %s\n", ++$i, $_, $teilnehmer{$_}; }