The accessors pragma lets you create simple accessors at compile-time.

This saves you from writing them by hand, which tends to result in cut-n-paste
errors and a mess of duplicated code. It can also help you reduce the ammount
of unwanted direct-variable access that may creep into your codebase when
you're feeling lazy. accessors was designed with laziness in mind.

Method-chaining accessors are generated by default. This may be changed in
future versions! If you want backwards compatability use accessors::chained
and wait until the dust settles.

See accessors::classic for accessors that always return the current value if
you don't like method chaining.

WWW: http://search.cpan.org/dist/accessors/