in reply to Perl Hashes, keys under keys (I think)?
FILENAME RECORD_ID M INBR DNBR OWNER UNBR UNO TTY TIME DATE /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 richard 500 +5444 156 pts/220 10:50:44 Sep 16 FILENAME RECORD_ID M INBR DNBR WAITING UNBR UNO TTY TIME DATE /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 marshall 33 +09650 35 none 10:50:30 Sep 16 /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 steven 4565 +899 122 pts/101 10:45:44 Sep 16 FILENAME RECORD_ID M INBR DNBR OWNER UNBR UNO TTY TIME DATE /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 kevin 5555555 +999 pts/900 10:25:00 Sep 16 FILENAME RECORD_ID M INBR DNBR WAITING UNBR UNO TTY TIME DATE /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 kelly 1234567 +886 none 10:28:00 Sep 16 /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 russel 7654321 + 456 tty/101 10:25:00 Sep 16 FILENAME RECORD_ID M INBR DNBR OWNER UNBR UNO TTY TIME DATE /ud/NEW-PrOdUcTs/NWA 999?SheetMusic X 9876541 86555522211 mmartin 5151 +515 000 tty/100 10:51:00 Sep 16 FILENAME RECORD_ID M INBR DNBR WAITING UNBR UNO TTY TIME DATE /ud/NEW-PrOdUcTs/NWA 999?SheetMusic X 9876541 86555522211 luther 12345 +67 987 none 10:51:00 Sep 16
#@temp contains all data from input file (line-by-line) my @temp = <DATA>; my %records; my @fields; my $x = 0; if (@temp) { while ($x <= $#temp) { @fields = split " ", $temp[$x]; if ($fields[5] =~ /OWNER/) { $x++; @fields = split " ", $temp[$x]; print "OWNER --- @fields\n"; #Add OWNER to hash based on RECORD_ID $records{"$fields[1]"}{ OWNER } = { USER => "$fields[5]", FILENAME => "$fields[0]", PID => "$fields[6]", TIME => "$fields[9]", DATE => (join " ", "$fields[10] $fields[11]"), ELAPSED => [] }; #Increment to Next Line $x++; } else { #If line is WAITING header increment to next line. if ($fields[5] =~ /WAITING/) { $x++; } #Split line into array @fields = split " ", $temp[$x]; print "WAITING --- @fields\n"; #Add WAITING to hash based on RECORD_ID $records{"$fields[1]"}{ WAITING } = { USER => "$fields[5]", FILENAME => "$fields[0]", PID => "$fields[6]", TIME => "$fields[9]", DATE => (join " ", "$fields[10] $fields[11]"), ELAPSED => [] }; $x++; } } } print Dumper \%records; ____OUTPUT____ OWNER --- /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 r +ichard 5005444 156 pts/220 10:50:44 Sep 16 WAITING --- /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 + marshall 3309650 35 none 10:50:30 Sep 16 WAITING --- /ud/QC-DATA/CONTROL 001!SCHEDULE X 3462970 922337219576856 + steven 4565899 122 pts/101 10:45:44 Sep 16 OWNER --- /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 kevi +n 5555555 999 pts/900 10:25:00 Sep 16 WAITING --- /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 ke +lly 1234567 886 none 10:28:00 Sep 16 WAITING --- /ud/QC-PROD/NWO 667!NEWPRODUCT X 6468555 59761456123786 ru +ssel 7654321 456 tty/101 10:25:00 Sep 16 OWNER --- /ud/NEW-PrOdUcTs/NWA 999?SheetMusic X 9876541 86555522211 mm +artin 5151515 000 tty/100 10:51:00 Sep 16 WAITING --- /ud/NEW-PrOdUcTs/NWA 999?SheetMusic X 9876541 86555522211 +luther 1234567 987 none 10:51:00 Sep 16 $VAR1 = { '999?SheetMusic' => { 'WAITING' => { 'PID' => '1234567', 'TIME' => '10:51:00', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/NEW-PrOdUcTs/NWA', 'USER' => 'luther' }, 'OWNER' => { 'PID' => '5151515', 'TIME' => '10:51:00', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/NEW-PrOdUcTs/NWA', 'USER' => 'mmartin' } }, '667!NEWPRODUCT' => { 'WAITING' => { 'PID' => '7654321', 'TIME' => '10:25:00', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/QC-PROD/NWO', 'USER' => 'russel' }, 'OWNER' => { 'PID' => '5555555', 'TIME' => '10:25:00', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/QC-PROD/NWO', 'USER' => 'kevin' } }, '001!SCHEDULE' => { 'WAITING' => { 'PID' => '4565899', 'TIME' => '10:45:44', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/QC-DATA/CONTROL', 'USER' => 'steven' }, 'OWNER' => { 'PID' => '5005444', 'TIME' => '10:50:44', 'DATE' => 'Sep 16', 'WAITERS' => [], 'FILENAME' => '/ud/QC-DATA/CONTROL', 'USER' => 'richard' } } };
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Perl Hashes, keys under keys (I think)?
by hbm (Hermit) on Sep 20, 2011 at 15:49 UTC | |
by mmartin (Monk) on Sep 20, 2011 at 19:27 UTC | |
by hbm (Hermit) on Sep 20, 2011 at 20:03 UTC | |
by mmartin (Monk) on Sep 20, 2011 at 20:09 UTC | |
by hbm (Hermit) on Sep 21, 2011 at 12:36 UTC | |
by mmartin (Monk) on Sep 21, 2011 at 20:51 UTC | |
by hbm (Hermit) on Sep 22, 2011 at 13:59 UTC | |
| |
|
Re^2: Perl Hashes, keys under keys (I think)?
by mmartin (Monk) on Sep 20, 2011 at 15:32 UTC |