Predicates

has 'foo' => (
    is        => 'ro',
    required  => 0,
    predicate => 'has_foo',
);

Class->new->has_foo;              # false
Class->new( foo => 42 )->has_foo; # true