}) unless $meta->has_method('AUTOLOAD');
$meta->add_method('can' => sub {
$_find_method->($_[0]->meta, $_[1]);
- }) unless $meta->has_method('can');
+ }) unless $meta->has_method('can');
return $meta;
});
sub superclasses {
my $self = shift;
- no strict 'refs';
+
+ $self->add_package_symbol('@SUPERS' => [])
+ unless $self->has_package_symbol('@SUPERS');
+
if (@_) {
my @supers = @_;
- @{$self->get_package_variable('@SUPERS')} = @supers;
+ @{$self->get_package_symbol('@SUPERS')} = @supers;
}
- @{$self->get_package_variable('@SUPERS')};
+ @{$self->get_package_symbol('@SUPERS')};
}
sub class_precedence_list {
as well, all that is required is to write a the C<class_precedence_list> method
which will return a linearized list of classes to dispatch along.
-=head1 AUTHOR
+=head1 AUTHORS
Stevan Little E<lt>stevan@iinteractive.comE<gt>
+Yuval Kogman E<lt>nothingmuch@woobling.comE<gt>
+
=head1 COPYRIGHT AND LICENSE
-Copyright 2006 by Infinity Interactive, Inc.
+Copyright 2006-2008 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>