Verzwickte Codeabschnitte habe ich in der Entwicklungsumgebung immer ein zweites mal isoliert in je einem eigenen "Testscript". Darin baue ich dann eine Schleife "um den Code herum" mit allen möglichen Testfällen, die greifbar sind. Die Schleife schaut dann quasi automatisiert, ob das Ergebnis dem erwarteten entspricht.
Bei zukünftigen funktionalen Erweiterungen lasse ich das dann immer mit allen alten und neuen Testfällen durchlaufen.
Zusätzlich natürlich immer brav
use strict und
perl -c script.pl
10 print "Hallo"
20 goto 10