Splitting code into smaller functions is often good practice, but not always. I often find it clearer to have the whole inline, so it can be seen at a glance, instead of lots of small functions used ...
Perl has goto mostly because it made the Awk-to-Perl translator easier to implement. It was never recommended for general usage by people in their own programs.