Leser: 27
1 2 3 4 5 6 7 8 9 10
my %id_keys=(); for my $obj (@_) { for my $key ($obj->tags()->key_list()) { print "Wert: ".$key." - ".$obj->type.$obj->id()."\n"; %id_keys{$key} = push(%id_keys{$key},{$obj->type.$obj->id()}); } }
%id_keys{$key} = push(%id_keys{$key},{$obj->type.$obj->id()});
2010-09-03T10:59:27 jan99das problem liegt in der zeile
Code (perl): (dl )%id_keys{$key} = push(%id_keys{$key},{$obj->type.$obj->id()});
1 2 3 4 5 6 7 8 9 10
# Auflistung aller verwendeten Tags my @key_list=OsmPM_GetKeyList(@osm_data); my @key_id_list = OsmPM_GetKeyIdList(@osm_data); # <<< das ist das von oben! foreach my $keyname (@key_list) { # tag-count my @tags = $key_id_list{$keyname}; #<<< angemerkte zeile my $tag_count = scalar(@tags); }
QuoteGlobal symbol "%key_id_list" requires explicit package name at osm_poimaker_m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
for my $key (sort keys %key_id_list) { # hier wird der hash-key ausgegeben - das ergebnis ist auch das erwartete print "key: ".$key."\n"; # jetzt sollen die array-daten des hash-keys ausgegeben werden # nach dem script kann man auf diese daten mit @{ $VARIABLE{$KEY} } zugegriffen werden # das @ ist für mich das kennzeichen das die daten als array zurückkommen und deshalb # würde ich for my @data (($key_id_list{$key}) schreiben # dieses führt jedoch zu einer fehlermeldung # die Dumper-ausgabe zeigt bei $data die erwarteten daten an for my $data ($key_id_list{$key}) { print Dumper($data); print "--> ".scalar($data)."\n"; # als nächstes werde ich dann eine schleife einbauen mit welcher # die daten des arrays ausgelesen werden können. } }
1 2 3 4 5 6 7
# jetzt sollen die array-daten des hash-keys ausgegeben werden # nach dem script kann man auf diese daten mit @{ $VARIABLE{$KEY} } zugegriffen werden # das @ ist für mich das kennzeichen das die daten als array zurückkommen und deshalb # würde ich for my @data (($key_id_list{$key}) schreiben # dieses führt jedoch zu einer fehlermeldung # die Dumper-ausgabe zeigt bei $data die erwarteten daten an }
1 2 3 4 5 6 7 8 9 10 11
for my $key (sort keys %key_id_list) { # hier wird der hash-key ausgegeben - das ergebnis ist auch das erwartete print "key: ".$key."\n"; # jetzt sollen die array-daten des hash-keys ausgegeben werden for my $data ( @{ $key_id_list{$key} } ) { print Dumper($data); } }
2010-09-07T06:55:16 jan99Code (perl): (dl )1 2 3 4 5 6 7 8for my $data ($key_id_list{$key}) { print Dumper($data); print "--> ".scalar($data)."\n"; # als nächstes werde ich dann eine schleife einbauen mit welcher # die daten des arrays ausgelesen werden können. }
kann mir einer sagen warum dennoch ebei der scalar-ausgabe folgendes kommt:
--> ARRAY(0x3d1f194)
Gruß Jan :-)
1 2 3 4 5
my $hashref = {}; my $arref = []; my $scalarref = \''; print "$hashref $arref $scalarref";
QuoteHASH(0x8153c28) ARRAY(0x81545f4) SCALAR(0x8154660)
1 2 3 4 5 6 7 8 9
for my $data ( @{ $key_id_list{$key} } ) { print Dumper($data); for my $dat (@{$data}) { print "----->".$dat."\n"; } }
Quote. .1key: addr:city
$VAR1 = 'Node601390537';
Can't use string ("Node601390537") as an ARRAY ref while "strict refs" in use at osm_poimaker_main.p
m line 323.
Drücken Sie eine beliebige Taste .
1
2
3
4
5
6
7
8
9
%key_id_hash = (
city => [
'Node601390537',
'Node601390538',
],
anderes => [
'Node601390539',
],
);
1 2 3 4 5 6 7 8 9 10 11 12
for my $key (sort keys %key_id_list) { # hier wird der hash-key ausgegeben - das ergebnis ist auch das erwartete print "key: ".$key."\n"; # jetzt sollen die array-daten des hash-keys ausgegeben werden for my $data ( @{ $key_id_list{$key} } ) { print $data; # oder sonstige Weiterverwendung von 'Node1355634'; } }
$wert=[$node,$id];
$wert=$node.$id;
Quote$wert=$node.$id;
QuoteNode601390537
Node601390538