$type->($value) is a live-or-die function rather than returning a boolean. It returns $value if it lives. Makes it easy to do something like:
sub set_name {
my $self = Object->( shift );
my $value = Str->( shift );
$self->{name} = $value;
}
sub get_name {
my $self = Object->( shift );
return $self->{name};
}
$type->check($value) returns a boolean.
Exporting an is_Topping (boolean) or assert_Topping (live or die) function will be faster because it will avoid overhead from things like overloading, method lookups, etc. Though what you've already got is unlikely to be a major bottleneck for your application, so I'd mostly say go with what you feel is more readable.
|