Reference: goto
Author: Ellen Siever, Stephen Spainhour & Nathan Patwardhan
Date: 1999-07-02T01:36:03Z

#

| Chapter 5 Function Reference |

## goto

    goto label
    goto &name

Finds the statement labeled with label (or an expression that evaluates to a label) and resumes execution there. It may not be used to go into any construct that requires initialization, such as a subroutine or a `foreach` loop. It also can't be used to go into a construct that is optimized away. It can be used to go almost anywhere else within the dynamic scope, including out of subroutines, but for that purpose it's usually better to use some other construct such as `last` or `die`.

`goto` `&name` substitutes a call to the named subroutine for the currently running subroutine. This is used by `AUTOLOAD` subroutines that wish to load another subroutine and then pretend that this subroutine - and not the original one - had been called in the first place (except that any modifications to `@_` in the original subroutine are propagated to the replacement subroutine). After the `goto`, not even `caller` will be able to tell that the original routine was called first.

Reference: gmtime |  | Reference: grep