Those labels look like a good place to start. sub them out and pass the array.
Those large, gnarly if/elsif clauses would be my next step. Create a descriptively named sub like has_many_valid_lodgements, move the logic there and return true or false. This also has the advantage of self-documenting your code. No one will be able to quickly discern what
means.scalar(@all_lodgements) > 2 && ($total_all_lodged == $total_qcs_docs)
Look for copy-and-paste code like the Date_Cmp's. Get rid of them. Make 1 sub and name it well.
Other Notes:
In reply to Re: Refactor huge subroutine
by grep
in thread Refactor huge subroutine
by est
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |