You invoke a subroutine from within any expression by following the subroutine name with parentheses, as in:
say_hello(); # a simple expression
$a = 3 + say_hello(); # part of a larger expression
for ($x = start_value(); $x < end_value(); $x += increment()) {
...
} # invoke three subroutines to define valuesA subroutine can invoke another subroutine, and that subroutine can in turn invoke another subroutine, and so on, until all available memory is filled with return addresses and partially computed expressions. (No mere 8 or 32 levels could satisfy a real programmer.)