Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Foreach loop explanation

by eyepopslikeamosquito (Canon)
on Nov 24, 2012 at 00:11 UTC ( #1005326=note: print w/ replies, xml ) Need Help??


in reply to Foreach loop explanation

Using a regex does not seem appropriate here because the lines may contain regex metacharacters. The sample code below assumes you want exact matches. You may need to tailor it for things like white space, case sensitivity, and so on.

use strict; use warnings; @ARGV == 2 or die "usage: $0 file1 file2\n"; my $file1 = shift; my $file2 = shift; open my $in1, '<', $file1 or die "unable to open '$file1': $!"; open my $in2, '<', $file2 or die "unable to open '$file2': $!"; chomp( my @nomi = <$in1> ); chomp( my @indirizzi = <$in2> ); close $in1; close $in2; # Remove any blank or empty lines (optional, depends on your data file +s). @nomi = grep { !/^\s*$/ } @nomi; @indirizzi = grep { !/^\s*$/ } @indirizzi; # Create a hash of lines in @nomi. my %in_nomi; foreach my $item (@nomi) { $in_nomi{$item}++ } # Check if each line in @indirizzi is in nomi. # Note: does not check for duplicate lines in @indirizzi. foreach my $line (@indirizzi) { print "$line\n" if $in_nomi{$line}; }

See perlfaq4, especially the frequently asked questions:

  • How can I remove duplicate elements from a list or array?
  • How can I tell whether a certain element is contained in a list or array?
  • How do I compute the difference of two arrays?
  • How do I compute the intersection of two arrays?


Comment on Re: Foreach loop explanation
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1005326]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2014-09-21 05:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (166 votes), past polls