Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Compare Values in HoH

by graff (Chancellor)
on Apr 07, 2006 at 04:19 UTC ( #541785=note: print w/replies, xml ) Need Help??

in reply to Compare Values in HoH

As Herkum pointed out above, you are making this too complicated. You said yourself:
What I want to do is check if a VALUE in Ahash is also in Bhash (or a line in File1 is also in File2).

So just using whole lines from each file as the hash keys (like Herkum does) is the thing to do. In case the same string can occur multiple times in one file -- and in case it's important to keep track of how many times it occurs -- here's a simple variation on his approach to handle that:

my %strings; while (<FILE1>) { chomp; $string{$_} .= '1'; # if same data appears three times, hash valu +e is "111"; } while (<FILE2>) { chomp; $string{$_} .= '2'; # same as above, but with "2" instead of "1" } # get hash keys (lines) that occur in both files: my @common = grep { $strings{$_} =~ /12/ } sort keys %strings; # report findings: for my $key ( @common ) { my ( $n1, $n2 ) = ( $strings{$key} =~ /(1+)(2+)/ ); printf("%s found %d times in file1, %d times in file2\n", $key, length($n1), length($n2)); } # you can also pick out strings unique to file1 (/1$/) # and/or strings unique to file2 (/^2/), along with their # frequency of occurrence. This also scales fairly well to # handling three or more files.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://541785]
and monks are getting baked in the sun...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2018-06-21 11:35 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (118 votes). Check out past polls.