You are really quite sucky. Why? Well, you start out with a nice simple example, which is good. However, you don't show any code that uses the bright, shiny new classes. This is what I tried:
use strict; use warnings; use 5.012; package Point; use Moose; # automatically turns on strict and warnings has 'x' => (is => 'rw', isa => 'Int'); has 'y' => (is => 'rw', isa => 'Int'); ############ my $p = Point->new(10, 20); say $p->x; say $p->y; --output:-- Use of uninitialized value in say at 2.pl line 44. Use of uninitialized value in say at 2.pl line 45.
Hmmm...how do you call the accessor methods? The Moose docs direct beginners to Moose::Manual. Hey, more of the same in Moose::Manual: class definitions, and no code that creates an object and calls the object's accessor methods. Great! Okay, let's check google for Moose tutorials. Hey, none of the top 1,000 hits includes code that creates an object and calls the object's accessor methods. What about Moose::Cookbook. Nothing!!!
Sorry docs. Please track down Lincoln Stein, and pay him whatever it takes.