X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-StrictConstructor.git;a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor%2FTrait%2FMethod%2FConstructor.pm;h=1eceed7256bcf5ffbed76cec82cedd53035632af;hp=0ceec121a4402da7c22c70b606785d503da6a9ba;hb=refs%2Fheads%2Fchip%2Ffast1;hpb=b98b8f867754f1c69f1cae8ac1b6fc0bb2544e3a diff --git a/lib/MooseX/StrictConstructor/Trait/Method/Constructor.pm b/lib/MooseX/StrictConstructor/Trait/Method/Constructor.pm index 0ceec12..1eceed7 100644 --- a/lib/MooseX/StrictConstructor/Trait/Method/Constructor.pm +++ b/lib/MooseX/StrictConstructor/Trait/Method/Constructor.pm @@ -20,12 +20,15 @@ around '_generate_BUILDALL' => sub { map { $_->init_arg() } @{ $self->_attributes() } ); - $source .= <<"EOF"; -my \%attrs = (@attrs); - -my \@bad = sort grep { ! \$attrs{\$_} } keys \%{ \$params }; + my $MY = 'my'; + if ($] >= 5.009004) { + $source .= "use feature 'state';\n"; + $MY = 'state'; + } -if (\@bad) { + $source .= <<"EOF"; +$MY \$attrs = { @attrs }; +if (my \@bad = sort grep { ! \$attrs->{\$_} } keys %\$params) { Moose->throw_error("Found unknown attribute(s) passed to the constructor: \@bad"); } EOF