Wow, thank you for your assistance.  I was working on the assumption that I got 
something correct in an earlier script, that was incorrect.  I've got some more 
work to do but your explanation helped me understand where I went wrong.


On Feb 24, 2010, at 12:38 PM, John W. Krahn wrote:

> Erik Lewis wrote:
>> Hi,
> 
> Hello,
> 
>> I'm writing a perl script thats goal is to read a delimited file
>> containing a userid and an address to google maps where the address is
>> converted into latitude and longitude.  The problem I'm having is with
>> the result I'm printing.  Each line is unique via the userid when its
>> printed but I'm getting the same latitude and longitude for each
>> address.  I think the problem is I need to wait x amount of seconds
>> before i send each url to google, but I'm not really sure how to
>> accomplish that.  To be truthful I'm not even sure that is the problem.
>> I've attached my script, input file, and result.  Note its personal
>> data so I've had to anonymize the input file and the results.  
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> #!/usr/bin/perl
>> use warnings; use strict; use LWP::Simple;
>> open (ADDRESSOUT, 'addressout.txt'); 
> 
> You should *always* verify that the file opened correctly:
> 
> open ADDRESSOUT, '<', 'addressout.txt' or die "Cannot open 'addressout.txt' 
> $!";
> 
> 
>> while (<ADDRESSOUT>) {     #the start of the loop
>>    chomp;         #dropping line characters
>>    my @addressfield = split(/\:\:\:/, $_);        my $geoaddress = 
>> $addressfield[1] =~ s/ /\+/;
> 
> You are assigning the return value of the substitution which is always either 
> TRUE or FALSE (the =~ operator has higher precedence than the = operator.)  
> You need to do the assignment first before the substitution.  You are only 
> substituting the first space character, not all of them.
> 
>    ( my $geoaddress = $addressfield[ 1 ] ) =~ s/ /+/g;
> 
> 
>>    my $googlekey = "unique google map api key";
>>    my $geocode_csv = 
>> get("http://maps.google.com/maps/geo?q=$geoaddress&output=csv&sensor=false&key=$googlekey";)
>>    or die 'Unable to get page';
>>    my @geoarray = split(/,/, $geocode_csv);
>>    print "$addressfield[0],$geoarray[2],$geoarray[3]\n";
>> }  #end of the loop
>> close (ADDRESSOUT);  #closing the file
>> exit 0;
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> addressout.txt
>> 32986000382444:::34 main street anytown, tn 39455
>> 31686000146174:::76 second avenue anytown, tn 39455
>> 31685000781354:::1 park lane anytown, tn 39455
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> result
>> 32986000382444 ,49.3961500,32.7630300
>> 31686000146174 ,49.3961500,32.7630300
>> 31685000781354 ,49.3961500,32.7630300
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> 
> 
> John
> -- 
> The programmer is fighting against the two most
> destructive forces in the universe: entropy and
> human stupidity.               -- Damian Conway
> 
> -- 
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
> 


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to