Class::Accessor::Contextual - Context-aware accessors


Class-Accessor-Contextual documentation Contained in the Class-Accessor-Contextual distribution.

Index


Code Index:

NAME

Top

Class::Accessor::Contextual - Context-aware accessors

SYNOPSIS

Top

 package Farm;
 use base qw/Class::Accessor::Contextual/;

 Farm->mk_accessors(qw/animals names/);

 my $farm = Farm->new();

 $farm->animals([qw/horse pig owl/]);

 print join ' ', $farm->animals;

 # horse pig owl

 $farm->names({
    horse => "Mr. Ed",
    pig   => "Miss Piggy",
    owl   => "Dr. Who"});

 my %name_hash = $farm->names;

DESCRIPTION

Top

This class overrides Class::Accessor's get() method so that references to arrays or hashes will automatically be dereferenced when called in list context.

AUTHOR

Top

Brian Duggan, <bduggan at matatu.org>

SEE ALSO

Top

Class::Accessor

COPYRIGHT & LICENSE

Top


Class-Accessor-Contextual documentation Contained in the Class-Accessor-Contextual distribution.
package Class::Accessor::Contextual;

use warnings;
use strict;

our $VERSION = '0.01';

use base 'Class::Accessor';

sub get {
    my $got = shift->SUPER::get(@_);
    return $got unless wantarray;
    return @$got if ref($got) eq 'ARRAY';
    return %$got if ref($got) eq 'HASH';
    return $got;
}

1;