ACCESSORS::CLASSIC(3PM) - Linux man page online | Library functions
Create 'classic' read/write accessor methods in caller's package.
Chapter
2015-06-07
accessors::classic(3pm) User Contributed Perl Documentation accessors::classic(3pm)
@cpan.org>
perl v5.20.2 2015-06-07 accessors::classic(3pm)
NAME
accessors::classic - create 'classic' read/write accessor methods in caller's package.SYNOPSIS
package Foo; use accessors::classic qw( foo bar baz ); my $obj = bless {}, 'Foo'; # always return the current value, even on set: $obj->foo( 'hello ' ) if $obj->bar( 'world' ) eq 'world'; print $obj->foo, $obj->bar, $obj->baz( "!\n" );DESCRIPTION
The accessors::classic pragma lets you create simple classic Perl accessors at compile- time. The generated methods look like this: sub foo { my $self = shift; $self->{foo} = shift if (@_); return $self->{foo}; } They always return the current value. Note that there is no dash ("-") prepended to the property name as there are in accessors. This is for backwards compatibility.PERFORMANCE
There is little-to-no performace hit when using generated accessors; in fact there is usually a performance gain. · typically 5-15% faster than hard-coded accessors (like the above example). · typically 1-15% slower than optimized accessors (less readable). · typically a small performance hit at startup (accessors are created at compile-time). · uses the same anonymous sub to reduce memory consumption (sometimes by 80%). See the benchmark tests included with this distribution for more details.CAVEATS
Classes using blessed scalarrefs, arrayrefs, etc. are not supported for sake of simplicity. Only hashrefs are supported.AUTHOR
Steve Purkis <