---
name: "ModPerl::Global"
section: "3pm"
platform: "linux"
package: "libapache2-mod-perl2"
version: "2.0.13-2+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ModPerl::Global"
---

# ModPerl::Global(3pm)

## NAME

ModPerl::Global -- Perl API for manipulating special Perl lists

## Synopsis

```
  use ModPerl::Global ();
  my $package = 'MyApache2::Package';

  # make the END blocks of this package special
  ModPerl::Global::special_list_register(END => $package);

  # Execute all encoutered END blocks from this package now
  ModPerl::Global::special_list_call(    END => $package);

  # delete the list of END blocks
  ModPerl::Global::special_list_clear(   END => $package);
```

## Description

`"ModPerl::Global"` provides an API to manipulate special perl lists. At the moment only the `"END"` blocks list is supported.

This API allows you to change the normal Perl behavior, and execute special lists when you need to.

For example `"ModPerl::RegistryCooker"` uses it to run `"END"` blocks in the scripts at the end of each request.

Before loading a module containing package `$package`, you need to register it, so the special blocks will be intercepted by mod\_perl and not given to Perl. `"special_list_register"` does that. Later on when you want to execute the special blocks, `"special_list_call"` should be called. Unless you want to call the list more than once, clear the list with `"special_list_clear"`.

## API

`"ModPerl::Global"` provides the following methods:

### "special\_list\_call"

Call the special list

```
  $ok = special_list_call($key => $package);
```

- arg1: $key ( string )

  The name of the special list. At the moment only `'END'` is supported.

- arg2: $package ( string )

  what package to special list is for

- ret: $ok ( boolean )

  true value if `$key` is known, false otherwise.

- since: 2.0.00

  ### "special\_list\_clear"

Clear the special list

```
  $ok = special_list_clear($key => $package);
```

- arg1: $key ( string )

  The name of the special list. At the moment only `'END'` is supported.

- arg2: $package ( string )

  what package to special list is for

- ret: $ok ( boolean )

  true value if `$key` is known, false otherwise.

- since: 2.0.00

  ### "special\_list\_register"

Register the special list

```
  $ok = special_list_call($key => $package);
```

- arg1: $key ( string )

  The name of the special list. At the moment only `'END'` is supported.

- arg2: $package ( string )

  what package to special list is for

- ret: $ok ( boolean )

  true value if `$key` is known, false otherwise.

- since: 2.0.00

  Notice that you need to register the package before it is loaded. If you register it after, Perl has already compiled the `"END"` blocks and there are no longer under your control.

## See Also

mod\_perl 2.0 documentation.

## Copyright

mod\_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.

## Authors

The mod\_perl development team and numerous contributors.
