examples/mootype/Person.pm
package Person; use Moo; has name => (is => 'rw'); has age => ( is => 'rw', isa => sub { die "'$_[0]' is not an integer!" if $_[0] !~ /^\d+$/; }, ); 1;
examples/mootype/student_1.pl
use strict; use warnings; use 5.010; use Person; my $student = Person->new( name => 'Foo', age => 22 ); say $student->name; say $student->age; $student->age('young'); say $student->age;
The expected result stated on the site is that
Foo
22
isa check for "age" failed: 'young' is not an integer! at Person.pm line 8.
But what I get is
isa check for "age" failed: '22' is not an integer! at ~/bin/../lib/Person.pm line 10.
What I am trying to understand is, has something changed and this result (no presence of first two say) is now expected? Or am I somehow doing it different? I am using same code including `use 5.010` but the version of perl I am on is 5.26.1 and I have added following two lines between `use 5.010` and `use Person`
use FindBin qw($Bin);
use lib "$Bin/../lib";
In reply to Moo-Type checking example from Perl Maven: What should be the expected result? by Perl300
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |