in reply to Would you use 'goto' here?

I myself wouldn't. The only time I can recall ever using goto is in my recent cron script. As a means of effectively restarting the program.

To me this really seems to be a case for using if/else contructs. One question though, why aren't you checking for the officeID outside of the sub? Since you are apparently checking other things before to determine which sub to call...

perl -p -e "s/(?:\w);([st])/'\$1/mg"