Absolutely, you can only have one record of a given key. So you can tweak the key like you are doing, or rethink your structure. Maybe you want the WAITING keys to be arrayrefs, pointing to lists of zero or more WAITING records.
Also, you have a lot of duplicate code. Consider consolidating like this, untested:
if ($fields[5] =~ /(OWNER|WAITING)/) { my $state = $1; # and perhaps this, for your new solution: $state .= $count if $state eq 'WAITING'; $x++; @fields = split " ", $temp[$x]; print "$state --- @fields\n"; #Add record to hash based on RECORD_ID $records{"$fields[1]"}{ $state } = { USER => "$fields[5]", FILENAME => "$fields[0]", PID => "$fields[6]", TIME => "$fields[9]", DATE => (join " ", "$fields[10] $fields[11]"), ELAPSED => [] }; #Increment to Next Line $x++; }
In reply to Re^2: Perl Hashes, keys under keys (I think)?
by hbm
in thread Perl Hashes, keys under keys (I think)?
by mmartin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |