I need to compare the contents of two HoH. Each hash represents files from a local cluster of machines and files in a remote cluster of machines. The code below correctly populates them both, but I don't know how to access each element for comparison.

What I mean by comparison is each hash must contain the same keys and key values.

#!/usr/bin/perl -w use strict; use Digest::MD5; use Data::Dumper; my(%localDigest, %remoteDigest ); my ($file, $md5, $digest, $key, $clusterHost); my @files = (@ARGV); my @hosts = ("Maleah", "Austin"); foreach $clusterHost(@hosts) { foreach $file(@files) { open(FILE, $file) or die "Can't open '$file': $!"; binmode(FILE); $md5 = Digest::MD5->new; while (<FILE>) { $md5->add($_); $digest = $md5->hexdigest; $localDigest{$clusterHost}{$file} = $digest; $remoteDigest{$clusterHost}{$file} = $digest; } close(FILE); } } print Dumper (%localDigest,%remoteDigest );

Specifically, what I need to compare is, ie:

%localDigest $VAR1 = 'Austin'; $VAR2 = { './gen-checksum.pl' => 'ad65a01b783248a21fcea95979a265a0', '/etc/passwd' => 'c978c29a59ba0138e5ed0ca325f7ec1e' }; $VAR3 = 'Maleah'; $VAR4 = { './gen-checksum.pl' => 'ad65a01b783248a21fcea95979a265a0', '/etc/passwd' => 'c978c29a59ba0138e5ed0ca325f7ec1e' };
equals
%remoteDigest $VAR5 = 'Austin'; $VAR6 = { './gen-checksum.pl' => 'ad65a01b783248a21fcea95979a265a0', '/etc/passwd' => 'c978c29a59ba0138e5ed0ca325f7ec1e' }; $VAR7 = 'Maleah'; $VAR8 = { './gen-checksum.pl' => 'ad65a01b783248a21fcea95979a265a0', '/etc/passwd' => 'c978c29a59ba0138e5ed0ca325f7ec1e' };

Thanks, once again,
Steve


In reply to Comparing contents of 2 Hashes of Hashes by Tuna

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.