The new code was missing the association of $val
Not at all. There's no reason to do
$val = $msg;
$analysis{$key} = $val;
when
$analysis{$key} = $msg;
suffices.
For me I would rather build one hash table instead of multiple hash tables and then merging them. To me it seems like a waste what are your thoughts?
To which multiple hashes are you refering? You mean if you if you were to keep the timestamp? You could do something like:
while(<RPT>) { chomp; if (/^(\D+.*\d{4}\s+)(\D+.*)(\w{11})$/) { my $timestamp = $1; my $msg = $2; my $key = $3; fmt_rpt($msg); if (exists($analysis{$key})) { $analysis{$key}[1] .= $msg; } else { $analysis{$key} = [ $timestamp, $msg ]; } } else { print "Program Error 2\n"; exit 1; }
See perllol for details. This would be a HoA (Hash of Arrays), which is similar to the mentioned AoA (Array of Arrays).
In reply to Re^3: Hash Trouble
by ikegami
in thread Hash Trouble
by tc1364
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |