#!/usr/bin/perl -w use strict; my $f = Fruit->new({name=>"strawberry"}); $f->guess_color("the devil"); print "My ". $f->name. " is ". $f->color. ".\n\n"; print "\nReference gotten by refaccessor: ". $f->_ref_color; print "\nReference gotten by generic (symbolic) reference accessor ", $f->get_ref('color'); print "\n(They should be the same.)\n\n"; exit 0; package Fruit; use base 'Class::Accessor::Ref'; use lib '.'; use API; BEGIN { Fruit->mk_accessors(qw(name color)); Fruit->mk_refaccessors(qw(color)); } # guess the color of a fruit with the help of an external library. # The name of the fruit will figure as a hint, as well as any # optional parameters. sub guess_color { my($self, @more_hints) = @_; API::find_color_by_hints($self->_ref_color, $self->name, @more_hints) or warn "uh, oh! I can't guess what my color is. Please set it!\n"; } 1;