You probably want to use a hash instead. Create a key for each zipcode by assigning it the value of 1, then see if the zipcode you're checking has a key in the hash.
Don't forget to chomp the lines as you read them from the file, and from STDIN.#!/usr/bin/perl use strict; use warnings; my $file = "zipcodes.txt"; my %zipcodes; open (my $fh, '<', $file) or die "Can't open $file for read: $!"; while (<$fh>) { chomp; $zipcodes{$_}++; } close $fh or die "Cannot close $file: $!"; while (chomp( my $line = <STDIN> )) { print "found $line\n" if $zipcodes{ $line }; } __END__
Edit: If you want to be lazy, you can use a module to open, read and close your file, do the chomping for you and put the lines in a list. In the snippet below we use Path::Tiny, which allows us to write one line to return a list of zip codes and map them into the hash:
More simply, this is how to get the list of chomped lines:use Path::Tiny; my $file = 'index.txt'; my %zipcodes = map { $_, 1 } path( $file )->lines({chomp => 1});
my @lines = path( $file )->lines({chomp => 1});
Hope this helps!
In reply to Re: regex matching array values with foreach
by 1nickt
in thread regex matching array values with foreach
by jasper8989
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |