in reply to parsing and get the report

Unless you had some other use for the intermediate variables, I'd replace
$time = $1; $tid = $2; $status = $3; $trname = $4; $tramount = $5; $hash{$2}->[0] = $status; $hash{$2}->[1] = $time; $hash{$2}->[2] = $trname; $hash{$2}->[3] = $tramount;
with
$hash{$2}{status} = $3; $hash{$2}{time} = $1; $hash{$2}{trname} = $4; $hash{$2}{tramount} = $5;
It's slightly shorter, and slightly more readable. (That is, it prevents you from asking 'What does subscript 2 stand for again?'.)