NAME

Data::Container - base class for objects containing a list of items

SYNOPSIS

package My::Container;
use base 'Data::Container';
...

package main;
my $container = My::Container->new;
$container->items_push(...);

DESCRIPTION

This class implements a container object. The container can contain any object, scalar or reference you like. Typically you would subclass Data::Container and implement custom methods for your specific copntainer.

When the container is stringified, it returns the concatenated stringifications of its items, each two items joined by two newlines.

METHODS

new

Creates and returns a new object. The constructor will accept as arguments a list of pairs, from component name to initial value. For each pair, the named component is initialized by calling the method of the same name with the given value.

items =item items_clear =item items_count =item items_index =item items_isset =item items_pop =item items_push =item items_reset =item items_set =item items_shift =item items_splice =item items_unshift

An array accessor. See Class::Method::array for details on related methods provided. items() is used to access the items contained in the container.

items_set_push

Like items_push(), and it also takes a list of items to push into the container, but it doesn't push any items that are already in the container (items are compared deeply to determine equality).

item_grep

Given a package name, it returns those items from the container whose ref() is equal to that package name.

For example, your container could contain some items of type My::Item::Foo and some of type My::Item::Bar. If you only want a list of the items of type My::Item::Foo, you could use:

my @foo_items = $container->item_grep('My::Item::Foo');

BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests to bug-data-container@rt.cpan.org, or through the web interface at http://rt.cpan.org.

INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

AVAILABILITY

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to find a CPAN site near you. Or see <http://www.perl.com/CPAN/authors/id/M/MA/MARCEL/>.

AUTHOR

Marcel Grünauer, <marcel@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2007 by Marcel Grünauer

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.