Johannes.Lichtenberger: Use of uninitialized value.

Hallo,

ich gehe eine CSV-Datei mit 3 Spalten, welche durch ein Pipe-Symbol (|) getrennt sind durch.

  
chomp;  
my @splitted = split(/\|/, $_);  
my $IP = $splitted[0];  
my $longitude = $splitted[1];  
my $latitude = $splitted[2];  

Bei einem anschließenden

  
print XML "      <coordinates>$longitude, $latitude, 0</coordinates>\n";  

bekomme ich ab und zu die Warnung

Use of uninitialized value $longitude in concatenation (.) or string at google.pl line 21, <FILE> line 710.

wobei ich jetzt auf den ersten Blick keine fehlenden Werte in der Datei erkennen kann.

Viele Grüße,
Johannes

  1. wobei ich jetzt auf den ersten Blick keine fehlenden Werte in der Datei erkennen kann.

    Wir hier auch nicht, mangels der Datei :-)
    Lass dir halt mal die Zeilennummer ausgeben, oder such gezielt nach den sonstigen Werten der Zeile. Dann kannst du diese eine Zeile genauer ansehen.

    1. »» wobei ich jetzt auf den ersten Blick keine fehlenden Werte in der Datei erkennen kann.
      Wir hier auch nicht, mangels der Datei :-)
      Lass dir halt mal die Zeilennummer ausgeben, oder such gezielt nach den sonstigen Werten der Zeile. Dann kannst du diese eine Zeile genauer ansehen.

      Ok, "if ($IP ne "ip" && $IP && $longitude && $latitude) {" langt dann als Bedingung, gab in der Tat einige "missing values" :-)

  2. Moin Moin!

    Hallo,

    ich gehe eine CSV-Datei mit 3 Spalten, welche durch ein Pipe-Symbol (|) getrennt sind durch.

    chomp;
    my @splitted = split(/|/, $_);
    my $IP = $splitted[0];
    my $longitude = $splitted[1];
    my $latitude = $splitted[2];

    
    >   
    > Bei einem anschließenden  
    >   
    > ~~~perl
      
    
    > print XML "      <coordinates>$longitude, $latitude, 0</coordinates>\n";  
    > 
    
    

    bekomme ich ab und zu die Warnung

    Use of uninitialized value $longitude in concatenation (.) or string at google.pl line 21, <FILE> line 710.

    $_ enthält kein |-Zeichen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  3. chomp;
    my @splitted = split(/|/, $_);
    my $IP = $splitted[0];
    my $longitude = $splitted[1];
    my $latitude = $splitted[2];

      
    Wozu brauchst du das Array?  
    ~~~perl
      
    my ($IP, $longitude, $latitude) = split(/\|/, $_);  
    
    

    Struppi.