Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Devel::GlobalDestructiUser)Contributed Perl DocumenDevel::GlobalDestruction(3)

NAME
       Devel::GlobalDestruction	- Provides function returning the equivalent
       of "${^GLOBAL_PHASE} eq 'DESTRUCT'" for older perls.

SYNOPSIS
	   package Foo;
	   use Devel::GlobalDestruction;

	   use namespace::clean; # to avoid having an "in_global_destruction" method

	   sub DESTROY {
	       return if in_global_destruction;

	       do_something_a_little_tricky();
	   }

DESCRIPTION
       Perl's global destruction is a little tricky to deal with WRT
       finalizers because it's not ordered and objects can sometimes
       disappear.

       Writing defensive destructors is	hard and annoying, and usually if
       global destruction is happening you only	need the destructors that free
       up non process local resources to actually execute.

       For these constructors you can avoid the	mess by	simply bailing out if
       global destruction is in	effect.

EXPORTS
       This module uses	Sub::Exporter::Progressive so the exports may be
       renamed,	aliased, etc. if Sub::Exporter is present.

       in_global_destruction
	   Returns true	if the interpreter is in global	destruction. In	perl
	   5.14+, this returns "${^GLOBAL_PHASE} eq 'DESTRUCT'", and on
	   earlier perls, detects it using the value of	"PL_main_cv" or
	   "PL_dirty".

AUTHORS
       Yuval Kogman <nothingmuch@woobling.org>

       Florian Ragwitz <rafl@debian.org>

       Jesse Luehrs <doy@tozt.net>

       Peter Rabbitson <ribasushi@cpan.org>

       Arthur Axel 'fREW' Schmidt <frioux@gmail.com>

       Elizabeth Mattijsen <liz@dijkmat.nl>

       Greham Knop <haarg@haarg.org>

COPYRIGHT
	   Copyright (c) 2008 Yuval Kogman. All	rights reserved
	   This	program	is free	software; you can redistribute
	   it and/or modify it under the same terms as Perl itself.

perl v5.32.1			  2016-10-31	   Devel::GlobalDestruction(3)

NAME | SYNOPSIS | DESCRIPTION | EXPORTS | AUTHORS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Devel::GlobalDestruction&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help