in reply to Re: Compare 2 Hashes w/ Multiple Variables
in thread Compare 2 Hashes w/ Multiple Variables

$hash1{$key}= "$metric1;$metric2;$metric3";

Personally, I'm not a fan of putting special characters anywhere. Or merging data together whenever and wherever it's not strictly required. Need to track information in memory? Merging not required. Need to send it to a file or to a remote host? Required. But then you use a nice serialisation protocol, such as JSON, XML, Storable, or even xSV (using Text::CSV_XS - it would at least handle cases where the metrics may have embedded semicolons).

So I'd want to keep each metric separated out. This also makes it easier to discern if file two has a repeated metric, in case you want to merge only unique metrics.

But maybe I'm just overthinking things :)

Replies are listed 'Best First'.
Re^3: Compare 2 Hashes w/ Multiple Variables
by Laurent_R (Canon) on Dec 24, 2013 at 18:07 UTC

    Well, sure, I fully appreciate your point, but, to start with, this is just a brief simple example, which would have to be adapted to the exact needs. My point was really to show the algorithm: store the content of one file in a hash and then read the second file and use the data stored before. Storing the data in the hash can be done in many many different ways (hash of arrays, hash of hashes, XML, CSV, fixed-length, etc.), I just chose a very simple way because this was not really the subject of the post (wghich was the algorithm to do the job).

    Then, the OP said he just needed to print out metrics 1 to 4; merging the data before storing into the hash makes things as simple as they can be when it comes to print them out. Any decision to make things more complex would just complicate the explanation of what needs to be done and would be actually meaninglessly premature so long as you haven't seen any of the data.

    And, BTW, I received an MP from the OP saying: "Thanks so much! It works just like I wanted!"