Hello monks,

I'd like to compare the 'eth' value of each component against the other 'eth' values of the /other/ components. Not of the same component. I've started with some loops but then it is looking quite awkward and not graceful at all. Surely there's a better path for doing this. I'm thinking about breaking down each COMP component into its own hash to ease doing the comparisons (they are currently read from a config file using Config::Std).

For instance, COMP1->eth1 would be compared against all other COMPn->ethx values where n !=1. Then, COMP1->eth2 would be compared the same. Then, COMP2->eth1 against all other eth values of all other COMP, so on so forth. Only half the quantity of values would have to be compared I presume.

Any suggestions/insights would be greatly appreciated on how to tackle this in good form.

my %components = ( COMP1 => { eth1 => "10.172.9.21/24", eth1_gw => "10.172.1.1", eth2 => "10.172.10.21/24", }, COMP2 => { eth1 => "10.172.9.22/24", eth2 => "10.172.11.21/24", }, COMP3 => { eth1 => "10.172.11.21/24", eth2 => "10.172.13.21/24", eth3 => "10.173.2.98/24", }, );

foreach my $compName (keys %components) { foreach my $param (keys %{$components{$compName}}) { if ($param =~ /eth[0-9]$/) { # [ then loop again through the COMP keys, excluding the current key # ... does not seem nice ] } }

In reply to Comparing hash values against other hash values by carcassonne

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.