---
name: "Perl::Destruct::Level"
section: "3pm"
platform: "linux"
package: "libperl-destruct-level-perl"
version: "0.02-3+b5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Destruct::Level"
---

# Perl::Destruct::Level(3pm)

Allow to change perl's destruction level

## NAME

Perl::Destruct::Level - Allow to change perl's destruction level

## SYNOPSIS

```
    use Perl::Destruct::Level level => 1;
    my $current_destruct_level = Perl::Destruct::Level::get_destruct_level();
```

## DESCRIPTION

This module allows one to change perl's internal *destruction level*.

The default value of the destruct level is 0; it means that perl won't bother destroying all its internal data structures, but let the OS do the cleanup for it at exit.

For perls built with debugging support (`"-DDEBUGGING"`), an environment variable `"PERL_DESTRUCT_LEVEL"` allows one to control the destruction level. This modules enables to modify it on non-debugging perls too.

Relevant values recognized by perl are 1 and 2. Consult your source code to know exactly what they mean. Note that some embedded environments might extend the meaning of the destruction level for their own purposes: mod\_perl does that, for example.

## CAVEATS

This module won't work when used from within an END block.

Loading the `"threads"` module will set the destruction level to 2. (This is to enable spawned threads to properly cleanup their objects.) Loading modules that load `"threads"`, even if they don't spawn threads, will also set the destruction level to 2. (A common example of such a module is `"Test::Builder"`.)

## AUTHOR

Copyright (c) 2007 Rafael Garcia-Suarez. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

perlrun, perlhack
