I know this topic is all kinds of old, but, I have a very short script which checks if multiple servers are online. I also wanted it so that via optional command line options $loop (boolean) and $time (integer) it would loop until all the servers are online. At this point it would beep a lot.
Yet rather than putting all the code in a big evil while() loop, or in a big evil sub, I thought sticking this at the bottom seemed to make a lot more sense, both code shortness and clarity-wise.
goto START if ($loop && sleep($time||300));
I had always knew gotos were bad. Now I know that you can never know anything ;)