Most of the time, writing accessors is an exercise in cutting and pasting. You usually wind up with a series of almost identical methods, one for each piece of data in your object. While some will be unique, doing value checks and special storage tricks, most will simply be exercises in repetition.
If you make your module a subclass of Class::Accessor and declare your accessor fields with mk_accessors() then you'll find yourself with a set of automatically generated accessors, which can even be customized!