On Mon, 19 Jun 2017 09:30:41 -0700, brad wrote: > The way Moose in Perl 5 works around this is to give it a subroutine
> there currently isn't as far as I know, a way to do what you intended. I'd like this feature as well. I was in IRC asking about whether we could restrict a hash in the same way python does, such that %hash<missing-value> dies. It was noted that one can do my %h is default(Failure.new); This would put a Failure in anything that didn't exist, which would detonate whenever accessed. Presumably, this would be the same Failure each time, but that's probably OK. It means there is no way of generating a default based on access. I think that would look something like: my %h is default(-> $key { Failure.new("$key not provided") }); But then how would it know to run the Callable to generate the default, rather than simply providing the Callable as the default? I have no answer for that.