package Class::MOP::Module; use strict; use warnings; use Scalar::Util 'blessed'; our $VERSION = '0.02'; our $AUTHORITY = 'cpan:STEVAN'; use base 'Class::MOP::Package'; # introspection sub meta { require Class::MOP::Class; Class::MOP::Class->initialize(blessed($_[0]) || $_[0]); } sub version { my $self = shift; ${$self->get_package_symbol('$VERSION')}; } sub authority { my $self = shift; ${$self->get_package_symbol('$AUTHORITY')}; } sub identifier { my $self = shift; join '-' => ( $self->name, ($self->version || ()), ($self->authority || ()), ); } 1; __END__ =pod =head1 NAME Class::MOP::Module - Module Meta Object =head1 SYNOPSIS =head1 DESCRIPTION =head1 METHODS =over 4 =item B =item B This is a read-only attribute which returns the C<$VERSION> of the package for the given instance. =item B This is a read-only attribute which returns the C<$AUTHORITY> of the package for the given instance. =item B This constructs a string of the name, version and authority. =back =head1 AUTHORS Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE Copyright 2006, 2007 by Infinity Interactive, Inc. L This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut