my $profile = { required => qw[my_name], constraint_methods => { my_name => sub { my $dfv = shift; my $var = shift; return if ($var !~ /\d+/); return 1; } } } #### $code =<<'END' my $dfv = shift; my $var = shift; return if ($var !~ /\d+/); return 1; END ; my $profile->{constraint_methods}{my_name} = sub { eval $code }; # Does not work #### my $profile->{constraint_methods}{my_name} = sub { use Data::Dump qw(dump); warn "PARAMS " . dump(@_) . "\n"; eval $code }; # Does not work