WHAT IS THIS?
=============
This is "AtExit", a Perl5 module which exports a function name "atexit()"
to perform ANSI-C style exit processing for Perl5 programs; and a class
named "AtExit" to register clean-up functions for any variable-scope in
whicvh the AtExit object is defined.
AUTHORS/CONTRIBUTORS
====================
Andrew Langmead <
[email protected]> (initial draft).
Brad Appleton <
[email protected]> (Version 1.02 and 2.00).
Michael A. Chase <
[email protected]> (Version 2.00).
COPY/REUSE POLICY
=================
Copyright (C) 1996 Andrew Langmead. All rights reserved.
AtExit is free software; you can redistribute it and/or modify it
under the terms of the Artistic License distributed with Perl version
5.000 or (at your option) any later version. Please refer to the
Artistic License that came with your Perl distribution for more
details.
The Artistic License should have been included in your distribution of
Perl. It resides in the file named "Artistic" at the top-level of the
Perl source tree (where Perl was downloaded/unpacked -- ask your
system administrator if you dont know where this is). Alternatively,
the current version of the Artistic License distributed with Perl can
be viewed on-line on the World-Wide Web (WWW) from the following URL:
http://www.perl.com/perl/misc/Artistic.html
The latest version of Perl can be obtained on the World-Wide web (WWW)
from the following URL:
http://www.perl.com/CPAN/src/latest.tar.gz
DISCLAIMER
===========
This software is distributed in the hope that it will be useful, but
is provided "AS IS" WITHOUT WARRANTY OF ANY KIND, either expressed or
implied, INCLUDING, without limitation, the implied warranties of
MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE.
The ENTIRE RISK as to the quality and performance of the software
IS WITH YOU (the holder of the software). Should the software prove
defective, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.
IN NO EVENT WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY CREATE,
MODIFY, OR DISTRIBUTE THE SOFTWARE BE LIABLE OR RESPONSIBLE TO YOU OR TO
ANY OTHER ENTITY FOR ANY KIND OF DAMAGES (no matter how awful - not even
if they arise from known or unknown flaws in the software).
Please refer to the Artistic License that came with your Perl
distribution for more details.
CONTENTS
========
Please see the file named "MANIFEST" which should have been included
in the AtExit distribution.
REQUIREMENTS
============
* Perl version 5.002 or later
BUILDING & INSTALLING
=====================
Please see the perl "ExtUtils::MakeMaker" manpage for how to build and
install using the Makefile.PL template. In a nutshell, simply typing:
perl Makefile.PL
should build a Makefile with the usual targets like "all", "clean",
"test", and "install".
BUGS
====
Please send all bug reports to Brad Appleton <
[email protected]>
HISTORY
=======
19-Jan-1999 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Version 2.01
- rmexit may now be called (as a function or a method) with *no* arguments.
When this happens, *all* exit-handlers are removed!
18-Oct-1998 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Version 2.00
Made the following changes based on patches contributed by Michael Chase
- AtExit may now be used as a class to create objects which invoke callbacks
whenever the AtExit object is destroyed (or goes out of scope with no
other references to it).
- atexit() amd rmexit() may now be invoked as functions, or as methods.
When invoked as methods, they operate on an object for destruction-time
callbacks. Otherwise they operate on the program for program-exit-time
callbacks.
- Added the exit_subs(), is_exiting() and ignore_when_exiting() subroutines
to replace the use of @AtExit::EXIT_SUBS, $AtExit::EXITING, and
$AtExit::IGNORE_WHEN_EXITING. Use of these three variables is now
deprecated in favor of these new subroutines.
Although atexit & rmexit are still exported (for backward compatibility),
exit_subs(), is_exiting() and ignore_when_exiting() are NOT exported
by default.
- $AtExit::EXITING, $AtExit::IGNORE_WHEN_EXITING, and @AtExit::EXIT_SUBS
are now merely aliases to a class hash/object.
04-Sep-1996 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Version 1.02
- Added the rmexit() function to unregister subroutines if desired.
- Added $EXITING and $IGNORE_WHEN_EXITING variables to control behavior
of atexit() during exit-processing.
- Tested and documented the behavior of atexit() during exit-processing.
02-Sep-1996 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Version 1.01
- Some minor changes to documentation and variable names at the request
of some comp.lang.perl.modules readers.
27-Aug-1996 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Version 1.00 posted to comp.lang.perl.modules to garner feedback, and
to see if the module was too trivial to merit placing on CPAN.
- Added sections to the manpage as recommended by Andrew Langmead.
- Convert "soft-refs" to subs into "hard-refs" at Andrew's recommendation.
- Added exit-handler arguments to atexit() at Andrew's recommendation.
- Changed atexit() to return a sub-ref (instead of nothing).
26-Aug-1996 Brad Appleton <
[email protected]>
-----------------------------------------------------------------------------
Polished up a bit for production and added documentation. Sent the result
to Andrew Langmead for his comments and approval.
22-Aug-1996 Andrew Langmead <
[email protected]>
-----------------------------------------------------------------------------
Initial version created.