Thread Hilfe beim Arbeiten mit Arrays (2 answers)
Opened by jan999 at 2009-04-26 08:52

jan999
 2009-04-26 08:52
#120890 #120890
User since
2009-04-02
109 Artikel
BenutzerIn
[default_avatar]
HI !

ich habe ein einfaches Tool das ich mir etwas anpassen möchte und irgendwie komme ich nicht weiter - trotz lesens kommt nicht das erwartete.

Zuerst etwas zum Vorablauf:
Es wird eine CSV-Datei mit Name, Straße, PLZ und Ort eingelesen und aufgesplittet:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub ReadPOIData
{
        open( IN, $go_POIFileName ) or die( "$go_POIFileName: $!" );
        while( <IN> )
        {
                chomp;
                my @tmp = split( /;/ );
                #   $g_POIRead{ lc($tmp[0]) } = $_;
                $g_POIRead{ lc($tmp[0]) } = [@tmp];
        }
        close( IN );
}


In einer zweiten Funktion werden dann nur Namen importiert und in einem Array $g_NeedKeys hinterlegt.

In einem der nächsten Schritte wird geprüft, ob es Übereinstimmungen zwischen den beiden oben genannten Arrays durchgeführt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
sub CheckNotInNeed
{
        foreach my $found ( keys %g_POIRead )
        {
                unless( $g_NeedKeys{ $found } )
                {
                        push( @g_POINewer, $found );
                }
        }
}


In dem vorliegenden Tool werden die Werte aus @g_POINewer einfach ausgegeben:

Code (perl): (dl )
print join( "\n", @g_POINewer), "\n";


Ich möchte aber die zugehörigen Daten (Straße, PLZ, Ort) der Elemente aus @g_POINewer mit ausgeben und habe folgendes mir zusammengebastelt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
foreach $schluessel (@g_POINewer) {
        print "Schluessel: ".$schluessel."\n";
        my @value = $g_POIRead{ $schluessel };
        print "Value0: ".@value(0)."\n";
        print "Value1: ".@value(1)."\n";
        print "Value2: ".@value(2)."\n";
        print "Value3: ".@value(3)."\n";
        print "Value4: ".@value(4)."\n";
}


Es kommt aber nicht das erwartete - stattdessen:
Quote
syntax error at D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich poi-check.pl line 135, near "@value("
syntax error at D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich\poi-check.pl line 136, near "@value("
syntax error at D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich\poi-check.pl line 137, near "@value("
syntax error at D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich\poi-check.pl line 138, near "@value("
syntax error at D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich\poi-check.pl line 139, near "@value("
Execution of D:\DATEN\JAN\openstreetmap\Perl_4osm\POI-Abgleich\poi-check.pl aborted due to compilation errors.


Kann mir einer sagen wo bei mir noch der Stein auf der Denkleitung steht ??

Gruß Jan :-)

View full thread Hilfe beim Arbeiten mit Arrays