my $meta = Moose::Meta::Class->create(
name => $package,
superclasses => [ 'Some::Base::Class' ],
roles => [ 'Does::Something' ]
);
$meta->make_immutable;
On Jun 19, 2009, at 6:08 AM, Ovid wrote:
I have some code which looks (roughly) like this:
foreach my $thing (@things) {
my $package = get_package($thing);
eval <<" END";
package $package;
use Moose;
extends 'Some::Base::Class';
with 'Does::Something';
END
confess $@ if $@;
$package->meta->make_immutable;
$package->setup($thing);
}
I would very much like to refactor this to not use that nasty eval.
If I don't know a package's name until runtime, how can I tell it to
"use Moose" with the appropriate inheritance and roles?
Cheers,
Ovid
--
Buy the book - http://www.oreilly.com/catalog/perlhks/
Tech blog - http://use.perl.org/~Ovid/journal/
Twitter - http://twitter.com/OvidPerl
Official Perl 6 Wiki - http://www.perlfoundation.org/perl6