Provided by: libaccessors-perl_1.01-4_all bug

NAME

       accessors::ro - create 'classic' read-only accessor methods in caller's package.

SYNOPSIS

         package Foo;
         use accessors::ro qw( foo bar baz );

         my $obj = bless { foo => 'read only? ' }, 'Foo';

         # values are read-only, so set is disabled:
         print "oh my!\n" if $obj->foo( "set?" ) eq 'read only? ';

         # if you really need to change the vars,
         # you must use direct-variable-access:
         $obj->{bar} = 'i need a drink ';
         $obj->{baz} = 'now';

         # always returns the current value:
         print $obj->foo, $obj->bar, $obj->baz, "!\n";

DESCRIPTION

       The accessors::ro pragma lets you create simple classic read-only accessors at compile-
       time.

       The generated methods look like this:

         sub foo {
             my $self = shift;
             return $self->{foo};
         }

       They always return the current value, just like accessors::ro.

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 0-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 <spurkis@cpan.org>

SEE ALSO

       accessors, accessors::rw, accessors::classic, accessors::chained, base