foreach my $op ( keys %{ $ops_hash{$q_date} } ) { push (@ops_array, $op); } $~ = HEADER; write; $~ = DATA; for ( 0 .. 23 ) { my $row_time = $_; foreach my $op_name ( @ops_array ) { foreach my $op_proc ( sort keys %{ $ops_hash{$q_date}{$op_name} } ) { my $op_start_time = $ops_hash{$q_date}{$op_name}{$op_proc}{'start'}; if ( ! defined $ops_hash{$q_date}{$op_name}{$op_proc}{'end'} ) { $op_end_time = $hour; } else { $op_end_time = $ops_hash{$q_date}{$op_name}{$op_proc}{'end'}; } $time = $row_time; $move_data = ( ($op_name =~ /MOVE DATA/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $backup = ( ($op_name =~ /BACKUP STORAGE/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $migrate = ( ($op_name =~ /MIGRATION/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $prepare = ( ($op_name =~ /PREPARE/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $checkin = ( ($op_name =~ /CHECKIN/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $reclaim = ( ($op_name =~ /RECLAMATION/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $restore = ( ($op_name =~ /RESTORE/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $move = ( ($op_name =~ /MOVE DRMEDIA/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $expire = ( ($op_name =~ /EXPIRE/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; $db = ( ($op_name =~ /Database Backup/) && ( ( $row_time >= $op_start_time ) && ( $row_time <= $op_end_time ) ) ) ? "X" : "_"; # if ( # ( $move_data eq "_" ) && # ( $backup eq "_" ) && # ( $migrate eq "_" ) && # ( $prepare eq "_" ) && # ( $checkin eq "_" ) && # ( $reclaim eq "_" ) && # ( $restore eq "_" ) && # ( $move eq "_" ) && # ( $db eq "_" ) ) { # next; # } write; } #write; } #write; } format HEADER = Hour MOVE DATA BACKUP STORAGE POOL MIGRATION PREPARE CHECKIN LIBVOLUME SPACE RECLAMATION RESTORE VOLUME MOVE DRMEDIA EXPIRE INVENTORY Database Backup . format DATA = @|| @|| @|| @|| @|| @|| @|| @|| @|| @|| @|| $time, $move_data, $backup, $migrate, $prepare, $checkin, $reclaim, $restore, $move, $expire, $db .