# i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
# brain damage and presumably various other packaging systems too
-$VERSION = '0.05999_01';
+$VERSION = '0.05999_04';
sub MODIFY_CODE_ATTRIBUTES {
my ($class,$code,@attrs) = @_;
- unless ($class->can('_attr_cache')) {
- $class->mk_classdata('_attr_cache');
- $class->_attr_cache({});
- }
- my $cache = $class->_attr_cache;
- $class->_attr_cache->{$code} = [@attrs];
+ $class->mk_classdata('__attr_cache' => {}) unless $class->can('__attr_cache');
+ $class->__attr_cache->{$code} = [@attrs];
return ();
}
+sub _attr_cache {
+ my $self = shift;
+ my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
+ my $rest = eval { $self->next::method };
+ return $@ ? $cache : { %$cache, %$rest };
+}
+
1;
=head1 NAME
sc_
-Robert Sedlacek <phaylon@dunkelheit.at>
+Robert Sedlacek <phaylon@dunkelheit.at
-Justin Guenther <jguenther@agr.gc.ca>
+Justin Guenther <guentherj@agr.gc.ca>
Daisuke Murase <typester@cpan.org>
+Scott McWhirter (konobi)
+
=head1 LICENSE
You may distribute this code under the same terms as Perl itself.