Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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]
[Corion]: Ugh - the FSF wants to merge Magit into Emacs (or rewrite Magit). It seems they haven't learned from Perl+CPAN that not having things in core is good.

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2017-07-21 11:22 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (321 votes). Check out past polls.