in reply to Re: Problem with array
in thread Problem with array

Hi, Here it is:
$listdata="results.txt"; open (list, "<$listdata") or &error("Unable to open the data file for +reading"); while (<list>){ my($line) = $_; chomp $line; ($abreviatura,$regiao,$latitude,$longitude,$pais,$admin1,$admin2,$cida +de) = split(/\|/,$line); if ($abreviatura =~ /^$localidade/ ){ if ((length($localidade) < 2) & (length($abreviatura) > 1)) { goto cont; } if ((length($nexacto)>1) & (length($localidade) < length($abreviatura) +)){ goto cont; } if ((length($country_code) < 3) & ($country_code !~ /$pais/gi )){ goto cont; } $cc = $pais; $adm1= uc ($pais.$admin1); if (length($adm1) < 3){ $adm1 ="N/A"; } $adm2 = $admin2; if ($pais !~ /US/gi){ $adm2=$pais.$admin2; } if (length($adm2) < 3){ $adm2 ="N/A"; } $pais = $codes{$pais}; if (length($pais) < 1){ $pais = $cc; $adm1 = $codes{$adm1}; if ($cc !~ /US/gi){ $adm2 = $codes{$adm2}; } if (length($adm1) < 1){ $adm1 ="N/A"; } if (length($adm2) < 1){ $adm2 ="N/A"; } ....starts showing results...
Kind regards, Kepler

Replies are listed 'Best First'.
Re^3: Problem with array
by Corion (Patriarch) on May 24, 2011 at 09:11 UTC

    You show a very incomplete piece of code that is even missing the label cont. I'm not sure what this piece of code is supposed to do or how or where I could see that it is skipping every second line.

    Please remove irrelevant parts of your code, and add the parts that show the results you get.

    As an aside, please also do work on your indentation. Your code is very hard to read for me:

    if (length($pais) < 1){ $pais = $cc; $adm1 = $codes{$adm1}; if ($cc !~ /US/gi){ $adm2 = $codes{$adm2}; } ...

    is much easier to read when formatted as

    if (length($pais) < 1){ $pais = $cc; $adm1 = $codes{$adm1}; if ($cc !~ /US/gi){ $adm2 = $codes{$adm2}; } ...

    That way, it becomes clear where each if block begins and ends.

Re^3: Problem with array
by Bloodnok (Vicar) on May 24, 2011 at 09:59 UTC
    Further to Corions' most salient observations, I would suggest the use of
    use warnings; use strict;
    In that way, you'd discover or, more accurately perl would tell you, that certain of the variables are not declared and initialised before use e.g. $localidade ...

    A user level that continues to overstate my experience :-))