To change the handling of individual parameters, there are I<coercions>
(See the L<Moose::Cookbook::Basics::Recipe5> for a complete example and
-explaination of coercions). With coercions it is possible to morph
+explanation of coercions). With coercions it is possible to morph
argument values into the correct expected types. This approach is the
most flexible and robust, but does have a slightly higher learning
curve.
is => 'rw',
);
-And have Moose create seperate C<get_bar> and C<set_bar> methods
+And have Moose create separate C<get_bar> and C<set_bar> methods
instead of a single C<bar> method.
NOTE: This B<cannot> be set globally in Moose, as that would break
See L<Moose::Cookbook::WTF> and specifically the B<How come BUILD
is not called for my composed roles?> question in the B<Roles> section.
+=head3 What are Traits, and how are they different to Roles?
+
+In Moose, a trait is almost exactly the same thing as a role, except that
+traits typically register themselves, and thus can be referred to by a short name.
+
+The word I<Role> is typically used to indicate a class building block, which
+is composed into a class at class composition time, whereas I<Trait> is used to
+indicate functionality which is composed into an instance of a class at runtime
+to add or modify the behavior of B<that instance>.
+
+But this is all just convention, so don't take it too seriously - nobody
+is going to yell at you if you use them interchangeably, or use one instead
+of the other.
+
+Outside the context of Moose, traits and roles generally mean exactly the
+same thing. The original paper called them Traits, however Perl 6 will call
+them Roles.
+
=head1 AUTHOR
Stevan Little E<lt>stevan@iinteractive.comE<gt>