Mit Referenzen baust du verschachtelte Strukturen: \@array und \%hash erzeugen Referenzen, [ ... ] und { ... } legen anonyme Arrays und Hashes an. Zugriff mit dem Pfeil: $ref->[0], $ref->{key}. So entstehen Listen von Hashes, Hashes von Arrays und andere Datenstrukturen.
Das ist die Grundlage für JSON-ähnliche Daten in Perl.
use strict;
use warnings;
my @personen = (
{ name => "Mia", alter => 17, hobbys => ["Rad", "Code"] },
{ name => "Tom", alter => 22, hobbys => ["Musik"] },
);
foreach my $p (sort { $a->{alter} <=> $b->{alter} } @personen) {
print "$p->{name} ($p->{alter}): ", join(", ", @{ $p->{hobbys} }), "\n";
}
my %zaehler;
$zaehler{$_}++ for qw(a b a c a);
print join(" ", map { "$_=$zaehler{$_}" } sort keys %zaehler), "\n";Merke
[ ]anonymes Array,{ }anonymer Hash- Pfeil-Zugriff:
$ref->{key},$ref->[0] @{ $ref }entpackt ein Array
Aufgabe
Baue eine Liste von Hashes und sortiere sie nach einem Feld.