PPI::Statement::Scheduled(3) User Contributed Perl Documentation PPI::Statement::Scheduled(3)

# [NAME](#NAME)

PPI::Statement::Scheduled - A scheduled code block

# [INHERITANCE](#INHERITANCE)

```
  PPI::Statement::Scheduled
  isa PPI::Statement::Sub
      isa PPI::Statement
          isa PPI::Node
              isa PPI::Element
```

# [DESCRIPTION](#DESCRIPTION)

A scheduled code block is one that is intended to be run at a specific time during the loading process.

There are five types of scheduled block:

```
  BEGIN {
        # Executes as soon as this block is fully defined
        ...
  }
  CHECK {
        # Executes after overall compile-phase in reverse order
        ...
  }
  UNITCHECK {
        # Executes after compile-phase of individual module in reverse order
        ...
  }
  INIT {
        # Executes just before run-time
        ...
  }
  END {
        # Executes as late as possible in reverse order
        ...
  }
```

Technically these scheduled blocks are actually subroutines, and in fact may have 'sub' in front of them.

# [METHODS](#METHODS)

## [type](#type)

The "type" method returns the type of scheduled block, which should always be one of 'BEGIN', 'CHECK', 'UNITCHECK', 'INIT' or 'END'.

# [TO DO](#TO_DO)

\- Write unit tests for this package

# [SUPPORT](#SUPPORT)

See the support section in the main module.

# [AUTHOR](#AUTHOR)

Adam Kennedy &lt;adamk@cpan.org&gt;

# [COPYRIGHT](#COPYRIGHT)

Copyright 2001 - 2011 Adam Kennedy.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

2026-10-26 perl v5.44.0

---

Document: PPI::Statement::Scheduled(3pm) from perl-ppi 1.291-r3 (Chainguard OS)
Source: https://github.com/Perl-Critic/PPI
