open(RPT,">$DIR/$RPT")||die"Can't open $RPT: $!\n"; print RPT "Report Date: $Date\n"; print RPT "$RPT\n"; print RPT "============================\n"; my($key,$msg,$ref); foreach $key(keys %hash){ $ref=$hash{$key}; foreach $msg(@Messages){ if($ref->{error_message}=~$msg and $ref->{date} eq $Date){ print RPT "$ref->{packet_id}\t$ref->{origin}\n", "$ref->{date}\t$ref->{qualifier}\n", "$ref->{time}\t$ref->{terminal_id}\n", "$ref->{device_id}\t\t$ref->{application_id}\n", "$ref->{catalog_code}\t\t$ref->{function_id}\n", "$ref->{status}\t\t$ref->{severity}\n", "$ref->{error_message}\n", "====================================================\n"; }## END OF IF STATEMENT }## END OF INNER FOREACH STATEMENT }## END OF OUTER FOREACH STATEMENT close RPT;