use warnings; use Data::Dumper; use YAML; use Storable qw/nstore/; my @a = ('a', 'b', 'c'); my @b = qw/a b c d e/; my $teilnehmer = { Mark => {jahr => 1975, groesse => 175, bildung => [qw/vs ahs uni/]}, Sigi => {jahr => 1960, groesse => 180}, Rene => {jahr => 1983, groesse => 183}, Bernhard => {jahr => 1975}, Markus => {jahr => 1974, bildung => [qw/vs ahs/]}, Peter => {jahr => 1981}, Stephan => {jahr => 1976}, }; YAML::DumpFile('tn.yaml', $teilnehmer); nstore($teilnehmer, 'tn.store'); my @alter_teilnehmer = sort { $teilnehmer->{$a}->{jahr} <=> $teilnehmer->{$b}->{jahr} } keys %$teilnehmer; push @{$teilnehmer->{Markus}->{bildung}}, 'fh'; ## foreach my $name (keys %$teilnehmer) { foreach my $name (@alter_teilnehmer) { print "$name \n"; next unless ref $teilnehmer->{$name}; next unless ref $teilnehmer->{$name}->{bildung}; printf "%s\n", " @{$teilnehmer->{$name}->{bildung}} "; }