1 2 3 4 5 6 7 8 9
use v5.14; my %hash; $hash{key} = []; push $hash{key}, "string"; use Data::Dumper; print Dumper \%hash;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
for my $element (@osm_data_platform) { my $refvalue = $element->tag('ref:svhl')->value(); my $fingerprint = lc($element->type()).$element->id(); dort vorhanden, print "\n\nReferenz: ".$refvalue."\n"; print "Fingerpring: ".$fingerprint."\n"; if (!defined($platform_id{$refvalue})) { print "==> nicht in Liste gefunden !\n"; push(@platform_noref, $fingerprint) # fehlerliste ergänzen }else{ print "==> in RefListe vorliegende !! => weiter checken\n"; - doppelt gibt es nicht ! if ($platform_id{$refvalue} ne "") { print "===> es liegt bereits eine Referenz vor ! => Fehlerliste fuer mehrfach ergaenzen\n"; if ($platform_id{$refvalue} eq "-1"){ push @{$platform_err_id{$refvalue}}, $fingerprint ; #<<<<- } $platform_err_id{$refvalue} = $platform_id{$refvalue}; $platform_id{$refvalue} = "-1"; push @{$platform_err_id{$refvalue}}, $fingerprint; #<<<<- } } else { print "==> jetzt liegt eine Element für diese Ref vor !\n"; $platform_id{$refvalue} = $fingerprint; } }
push( @{$platform_err_id{$refvalue}}, $fingerprint );
1 2 3
push @array, $foo, $bar, $baz; #ein oder mehrere Scalare push @array, @one_list, @another_list; #ein oder mehrere Arrays push @array, $foo, @list, $bar; #oder auch gemischt
1 2
my %platform_err_id = (); %platform_err_id = ( %platform_err_id, schlüssel => $wert);
$platform_err_id{$schluessel} = $wert;
1
2
3
4
5
6
# Ersten Wert anlegen:
$platform_err_id{$schluessel} = [ $wert1 ];
# Zweiten Wert hinzufügen
push @{$platform_err_id{$schluessel}}, $wert2;
# $platform_err_id{$schluessel} enthält jetzt [ $wert1, $wert2 ]
2011-06-16T12:30:54 KeanIch stand vor kurzem auch vor dem Problem mit push und Hashes.
Am schönsten fand ich diese Lösung:
Code (perl): (dl )1 2my %platform_err_id = (); %platform_err_id = ( %platform_err_id, schlüssel => $wert);
Guest jsPush fügt hinzu. In deinem Fall würde ein bestehender Key überschrieben werden, somit ist das Beispiel nicht equivalent zu push.