---
name: "Aspect::Guard"
section: "3pm"
platform: "linux"
package: "libaspect-perl"
version: "1.04-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Aspect::Guard"
---

# Aspect::Guard(3pm)

General purpose guard object for destroy-time actions

## NAME

Aspect::Guard - General purpose guard object for destroy-time actions

## SYNOPSIS

```
  SCOPE: {

      my $guard = Aspect::Guard->new( sub {
          print "Goodbye World!\n";
      } );

  }
  # Prints here as it exits the scope
```

## DESCRIPTION

The **Aspect::Guard** class shipping with Aspect is a convenience module for creating `"CODE"` based objects that execute when they fall out of scope.

It's usage is effectively summarised by the synopsis.

## METHODS

### new

```
  my $guard = Aspect::Guard->new( sub { do_something(); } );
```

The `"new"` method creates a new guard object. It takes a single `"CODE"` references as a parameter, which it will bless into the guard class, which will execute the code reference when it's `"DESTROY"` hook is called.

## AUTHOR

Adam Kennedy \<adamk@cpan.org\>

## COPYRIGHT

Copyright 2011 - 2013 Adam Kennedy.

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