use strict; use warnings; use Data::Dumper; my $inst; my %host; while() { if (/.*\/DISK\.(.*)\/.*/) { $inst = $1; next; } my ($dayofweek, $month, $date, $timing, $year, $dpoint) = split; push @{$host{$inst}}, { 'dayofweek' => $dayofweek, 'month' => $month, 'date' => $date, 'year' => $year, 'timing' => $timing, 'dpoint' => $dpoint }; } print Dumper(\%host); __DATA__ wspmon03/DISK.ssd123/DSKAvgServ Wed Nov 30 00:01:27 2006 7.34562 Wed Nov 30 00:02:29 2006 3.31222 Wed Nov 30 00:03:33 2006 1.23511 Wed Nov 30 00:04:23 2006 4.97532 Wed Nov 30 00:05:37 2006 5.31112 Wed Nov 30 00:06:36 2006 6.22991 wspmon03/DISK.ssd126/DSKAvgServ Wed Nov 30 00:01:27 2006 7.34562 Wed Nov 30 00:02:29 2006 3.31222 Wed Nov 30 00:03:33 2006 1.23511 Wed Nov 30 00:04:23 2006 4.97532 Wed Nov 30 00:05:37 2006 5.31112 Wed Nov 30 00:06:36 2006 6.22991 wspmon03/DISK.ssd129/DSKAvgServ Wed Nov 30 00:01:27 2006 7.34562 Wed Nov 30 00:02:29 2006 3.31222 Wed Nov 30 00:03:33 2006 1.23511 Wed Nov 30 00:04:23 2006 4.97532 Wed Nov 30 00:05:37 2006 5.31112 Wed Nov 30 00:06:36 2006 6.22991 #### $VAR1 = { 'ssd129' => [ { 'timing' => '00:01:27', 'dpoint' => '7.34562', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:02:29', 'dpoint' => '3.31222', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:03:33', 'dpoint' => '1.23511', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:04:23', 'dpoint' => '4.97532', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:05:37', 'dpoint' => '5.31112', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:06:36', 'dpoint' => '6.22991', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' } ], 'ssd126' => [ { 'timing' => '00:01:27', 'dpoint' => '7.34562', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:02:29', 'dpoint' => '3.31222', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:03:33', 'dpoint' => '1.23511', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:04:23', 'dpoint' => '4.97532', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:05:37', 'dpoint' => '5.31112', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:06:36', 'dpoint' => '6.22991', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' } ], 'ssd123' => [ { 'timing' => '00:01:27', 'dpoint' => '7.34562', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:02:29', 'dpoint' => '3.31222', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:03:33', 'dpoint' => '1.23511', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:04:23', 'dpoint' => '4.97532', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:05:37', 'dpoint' => '5.31112', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' }, { 'timing' => '00:06:36', 'dpoint' => '6.22991', 'date' => '30', 'month' => 'Nov', 'dayofweek' => 'Wed', 'year' => '2006' } ] };