Guest MoritzHat mit print nichts zu tun. Du bekommst eine Referenz, weil du eine Referenz zugewiesen hast durch den Backslash.beim print komme ich ja nur an die Referenz des Hashes, wie komme ich jetzt an das Hash und seine Einträge?
Guest MoritzWas sind "Hashmapes"?ich möchte gern ein Array erstellen, das aus Hashmapes besteht.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use strict; use warnings; my @array; my %hash = (a => 1, b => 5, c => 11); $array[1] = \%hash; print "flat list:\n"; print join("\n",%{$array[1]}); print "\n\nkey-value-pairs:\n"; for my $k (keys %{$array[1]}) { print "$k => " . $array[1]->{$k} ."\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; my @array; my %hash = ( a => 1, b => 2, c => 3, d => 4 ); $array[0] = \%hash; $array[1] = \%hash; $array[2] = \%hash; my $cnt=0; for my $hash_ref (@array) { print "POS: ",$cnt++,"\n"; next unless( $hash_ref ); while( my ( $key, $value ) = each( %$hash_ref ) ) { print " $key = $value\n"; } }
1 2 3 4 5 6 7 8 9
#!/usr/bin/perl -w use strict; use warnings; use Data::Dumper; my %hash = (a => 1); my @array = (\%hash); print Dumper(\@array)."\n"; print "key a: ".$array[0]{a};