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