The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;

package Foo;
use Moose;
use MooseX::UndefTolerant;

has 'bar' => (
    is => 'ro',
    isa => 'Num',
    predicate => 'has_bar'
);

__PACKAGE__->meta->make_immutable;

package main;

{
    my $foo = Foo->new;
    ok(!$foo->has_bar);
}

{
    my $foo = Foo->new(bar => undef);
    ok(!$foo->has_bar);
}

{
    my $foo = Foo->new(bar => 1234);
    cmp_ok($foo->bar, 'eq', 1234);
    ok($foo->has_bar);
}

done_testing;