my @data; open(DATA, $file) || die "Can't open $file: $!\n"; while () { push @data, [split /\t/]; } #### my $town = 'London'; my ($lat, $long); foreach (@data) { if $_->[0] eq $town; ($lat, $long) = ($_->[1], $_->[2]); last; } #### my %data; open(DATA, $file) || die "Can't open $file: $!\n"; while () { my ($town, @vals) = split(/\t/); $data{$town} = \@vals; } #### my ($lat, $long) = @{$data{$town}};