I think you found the reason why it is difficult to write a gawk to perl converter.
and then hand-code Perl where you get the errors. To be honest converted code is rarely readable and often inefficient so
's suggestion might be better in the long term.