open INPUT, "$ENV{HOME}/flat_file" or die $!; my %ports; while (my $line = ) { chomp $line; my ($code, $city) = split /\|/, $line; $ports{$code} = $city if not $ports{$code}; } for my $key (keys %ports) { if ($ARGV[1] =~ /$key/) { print $ports{$key}, "\n"; } } close INPUT; #### use Storable qw(retrieve); my $ports = retrieve("$ENV{HOME}/flat_file.dat"); #### #!/usr/bin/perl use strict; use Getopt::Std; my %parms; getopts ("c:p:", \%parms); die "Please supply a port code or city" if not $parms{p} and not $parms{c}; use Storable qw(retrieve); if ($parms{p}) { $parms{p} = uc $parms{p}; my $ports_by_code = retrieve("$ENV{HOME}/flat_file_by_port"); print $ports_by_code->{$parms{p}}, "\n"; } if ($parms{c}) { $parms{c} = uc $parms{c}; my $ports_by_city = retrieve("$ENV{HOME}/flat_file_by_city"); print $ports_by_city->{$parms{c}}, "\n"; }