use v5.16; use mop; use warnings; class Example { has $!name; has $!score; method getName () { return $!name; } method getScore () { return $!score; } } my $eg = Example->new(name => "Bob", score => 9.9); say $eg->getName; say $eg->getScore; #### use v5.14; use warnings; package Example { use Moose; has name => (is => 'ro', reader => 'getName'); has score => (is => 'ro', reader => 'getScore'); } my $eg = Example->new(name => "Bob", score => 9.9); say $eg->getName; say $eg->getScore; #### use v5.14; use warnings; package Example { use Moo; has name => (is => 'ro', reader => 'getName'); has score => (is => 'ro', reader => 'getScore'); } my $eg = Example->new(name => "Bob", score => 9.9); say $eg->getName; say $eg->getScore; #### use Moops; class Example :ro { has name => (reader => 'getName'); has score => (reader => 'getScore'); } my $eg = Example->new(name => "Bob", score => 9.9); say $eg->getName; say $eg->getScore;