============================================================================== Release of version 0.78 of Attribute::Handlers ============================================================================== NAME Attribute::Handlers - Simpler definition of attribute handlers DESCRIPTION This module, when inherited by a package, allows that package's class to define attribute handler subroutines for specific attributes. Variables and subroutines subsequently defined in that package, or in packages derived from that package may be given attributes with the same names as the attribute handler subroutines, which will then be called at the end of the compilation phase (i.e. in a `CHECK' block). EXAMPLE package UNIVERSAL; use Attribute::Handlers; my %name; sub name { return $name{$_[2]}||*{$_[1]}{NAME} } sub Name :ATTR { $name{$_[2]} = $_[4] } sub Purpose :ATTR { print STDERR "Purpose of ", &name, " is $_[4]\n" } sub Unit :ATTR { print STDERR &name, " measured in $_[4]\n" } package main; my $capacity : Name(capacity) : Purpose(to store max storage capacity for files) : Unit(Gb); package Other; sub foo : Purpose(to foo all data before barring it) { } AUTHOR Damian Conway (damian@conway.org) COPYRIGHT Copyright (c) 2001-2002, Damian Conway. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. ============================================================================== 0.78 Sat Oct 5 07:18:09 CEST 2002 - [#17940] Includes :unique and :shared in the builtin types - From perl 5.8 { __CALLER__::foo => __PACKAGE } is missparsed, the proper approach is to use { '__CALLER__::foo' => __PACKAGE }. The documentation is updated to reflect this. ============================================================================== AVAILABILITY Attribute::Handlers has been uploaded to the CPAN and is also available from: http://www.csse.monash.edu.au/~damian/CPAN/Attribute-Handlers.tar.gz ==============================================================================