Mark wrote:

> 
> I want to be able to determine what zone a zip code falls in from a user
> input.  Once I write the hash, the data contained within it will remain
> unchanged throughout the script except maybe for the occasional update if
> things change.
> 
> I am just unsure of which approach would be the best or if I have any real
> choice.  I have already written a hash that contains all of the possible
> zips in this format:
> 
> %zone = {
> one => [370,422,490..500,etc.]
> two => [200..232,388,etc]
> three => [and so on]
> four => [and so forth]
> }
> 
> I am assuming that I will be able to load an array of each of the zones
> and test if the zip is is contained within that zone.
> 
> OR
> 
> I could list each zip with it's corresponding zone into a hash with each
> zip and zone paired together, but I think that will take an awful lot of
> typing.
> 

I don't think you need to do a lot of typing. your best approach(i think of 
course) is to use the zip code as key and the zone code id as value. if you 
use the other way around, you are bound to find your searching algr. slow 
becasue you have to search through tons of zip codes on each search. 

try:

#!/usr/bin/perl -w
use strict;

my %zips;

@zips{100..200} = map{'zone 1'} (100..200);
@zips{201..300} = map{'zone 2'} (201..300);
@zips{301..400} = map{'zone 3'} (301..400);

while(<STDIN>){
        exit if(/^exit/i);
        chomp;
        print "$_ is in $zips{$_}\n" if(exists $zips{$_});
}

__END__

run:

100
100 is in zone 1
300
300 is in zone 2
400
400 is in zone 3
123
123 is in zone 1
exit

david

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to