Class::Accessor

Class::Accessor is an automated accessor generation tool.
Download

Class::Accessor Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Marty Pauley
  • Publisher web site:
  • http://search.cpan.org/~kasei/Class-Accessor-0.31/lib/Class/Accessor.pm

Class::Accessor Tags


Class::Accessor Description

Class::Accessor is an automated accessor generation tool. Class::Accessor is an automated accessor generation tool.SYNOPSIS package Employee; use base qw(Class::Accessor); Employee->mk_accessors(qw(name role salary)); # Meanwhile, in a nearby piece of code! # Class::Accessor provides new(). my $mp = Foo->new({ name => "Marty", role => "JAPH" }); my $job = $mp->role; # gets $mp->{role} $mp->salary(400000); # sets $mp->{salary} = 400000 (I wish) # like my @info = @{$mp}{qw(name role)} my @info = $mp->get(qw(name role)); # $mp->{salary} = 400000 $mp->set('salary', 400000);This module automagically generates accessors/mutators for your class.Most of the time, writing accessors is an exercise in cutting and pasting. You usually wind up with a series of methods like this: sub name { my $self = shift; if(@_) { $self->{name} = $_; } return $self->{name}; } sub salary { my $self = shift; if(@_) { $self->{salary} = $_; } return $self->{salary}; } # etc...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. Not only is it Bad Style to have a bunch of repetitious code, but its also simply not lazy, which is the real tragedy.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!The basic set up is very simple: package My::Class; use base qw(Class::Accessor); My::Class->mk_accessors( qw(foo bar car) );Done. My::Class now has simple foo(), bar() and car() accessors defined. Requirements: · Perl


Class::Accessor Related Software