Because they are autonomous, calling them more than once will also reuse them.
Most subroutines are of the 'named' persuasion.
These do not have a name by which they can be called, but are stored and accessed through a code reference. Since a code reference is a scalar value, it can be passed as a parameter to other subroutines. The use of subroutines is syntactically the same as the use of Perl's own built-in functions. Indeed, we can override and replace the built-in functions with our own definitions provided as subroutines through the use of the use subs pragma. Subroutines differ from ordinary bare blocks in that they can be passed a list of parameters to process.