Alaska Saedelere
and 1 contributors

NAME

Array::Delegate - Perl extension for delegating methods calls on a ArrayRef to its elements

SYNOPSIS

    package Employee;

    sub new { my $class = shift; return bless {@_}, $class; }

    sub pay_salary { print "Yay, fresh money for", shift->{name}, "\n" }

    package Company;

    sub employees {
        return Array::Delegate->new( [Employee->new( name => 'Tim' ), Employee->new( name => 'Bob' )] );
    }

    package SomeModule;

    Company->new()->employees()->pay_salary(); # pays all employees

DESCRIPTION

This is just to create a bit of syntactict sugar for OO interfaces.

In a a method that normally returns an ArrayRef of Objects, you can return an instance of Array::Delegate, which is still and array, just blessed. Then, the caller can use

    $results = $array->foo

Instead of

        $results = [ map $_->foo, @$array ];

METHODS

new( $arrayRef )

Simply blesses $arrayRef to be a Array::Delegate object.

AUTHOR

Alaska Saedelere, <alaska.saedelere@googlemail.com<gt>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Alaska Saedelere

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.