3 * concepts (ala Moose::Manual::Concepts)
7 * Making a class use Moose
11 ** has 'foo' => ( is => ... ) (ro & rw)
12 ** no other attribute features yet
18 * Build a Person class that uses Moose
21 ** assume both attributes are always provided
22 * build an Employee class that is a subclass of Person
30 * consuming roles in classes
31 * consuming roles in roles
36 * build a role for Human
37 * make the Person class consume the role
38 * make the role require a "full_name" method
39 * implement this method for Person
40 * override it for Employee to include their title
51 * Go back to Person class
52 ** make first & last name required
54 ** make title default to "Worker"
55 ** add salary_level attribute, number from 1-10
56 ** salary, lazy default of salary_level * 1,000, init_arg is undef
61 ** before for state validation
62 ** after for additional state changes
64 ** modifying arguments & return values
70 * methods and attributes
71 * method modifiers (and requiring the wrapped method)
86 * parameterizable types
90 ** class names & role names
92 * attribute isa & does