You are definitely mixing up the use of GOTO statements and the use of subroutines.
With goto, your program looks like spaghetti, it jumps from one place to the next and after a time you really cant untangle it.
By using subroutines (which are equal to C++ functions) you can divide your program into parts which perform different actions. If you also use lexical variables (my variables) and parameters (in Perl, these are in @_) you have a good programming style.
With object oriented programming, you can divide even more. Not only can you divide the actions in subroutines (called methods in object oriented programming) but also in different objects.
But for now if your new, i would advice to use subroutines and wait a little while with object oriented Perl.