Leser: 24
1
2
3
4
5
6
7
8
Hash: viele_biere:
$VAR1 = {
'Schlösser' => 'Alt',
'Krombacher' => 'Pils',
'Diebels' => 'Alt',
'Erdinger' => 'Weizen',
'Veltins' => 'Pils'
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Hash: bierarten:
$VAR1 = {
'Weizen' => [
'Erdinger'
],
'Pils' => [
'Krombacher',
'Veltins'
],
'Alt' => [
'Schlösser',
'Diebels'
]
};
1
2
3
4
my %bierarten;
for my $ein_bier ( keys %viele_biere ) {
push @{ $bierarten{$viele_biere{$ein_bier}} }, $ein_bier;
}
@{ $bierarten{$viele_biere{$ein_bier}} }
$viele_biere{$ein_bier}
$bierarten{$viele_biere{$ein_bier}}
@{ $bierarten{$viele_biere{$ein_bier}} }
push @{ $bierarten{$viele_biere{$ein_bier}} }, $ein_bier;
1
2
3
4
5
my $array_ref = [1,2,3];
my array1 = @$array_ref;
my array2 = @{$array_ref};
# Inhalt 'array1' gleich Inhalt 'array'2
push @{ $bierarten{$viele_biere{$ein_bier}} }, $ein_bier;
QuoteDas ist Perl, also macht es das Richtige.
1
2
3
4
5
6
7
if (defined $ein_bier # falls der Wert definiert ist
&& exists $viele_biere{$ein_bier}) { # falls schon ein Key im Hash existiert
# Ah! Dann schön ins Array pushen
}
else {
# was nun?
}