autodie::Scope::GuardStack(3perl)

autodie::Scope::GuardStack3perl

Hook stack for managing scopes via %^h

Usage

    use autodie::Scope::GuardStack;
    my $stack = autodie::Scope::GuardStack->new
    $^H{'my-key'} = $stack;
    $stack->push_hook(sub {});

Overview

This class is a stack of hooks to be called in the right order as scopes go away. The stack is only useful when inserted into "%^H" and will pop hooks as their "scope" is popped. This is useful for uninstalling or reinstalling subs in a namespace as a pragma goes out of scope.

Due to how "%^H" works, this class is only useful during the compilation phase of a perl module and relies on the internals of how perl handles references in "%^H". This module is not a part of autodie's public API.

Methods

new

  my $stack = autodie::Scope::GuardStack->new;

Creates a new "autodie::Scope::GuardStack". The stack is initially empty and must be inserted into "%^H" by the creator.

push_hook

  $stack->push_hook(sub {});

Add a sub to the stack. The sub will be called once the current compile-time "scope" is left. Multiple hooks can be added per scope

Releases

6 releases since Debian 9 (Stretch); the text changed 5 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13
  6. Arch

Author

Copyright 2013, Niels Thykier <[email protected]>

License

This module is free software. You may distribute it under the same terms as Perl itself.

From perl 5.44.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.