package Anything; sub new { my $class = shift; ## ... code here bless $self, $class; } sub prepare_create { ## .. do something } sub create { ## .. do something else } ## a.s.o. more methods here package Anything::List; sub new { my $class = shift; my @self = @_; bless \@self, $class; } sub add { my $self = shift; push @$self, @_; } sub list { my $self = shift; return @$self; } sub prepare_create { my $self = shift; foreach my $anything (@{$self}) { $anything->prepare_create(@_); } } sub create { my $self = shift; foreach my $anything (@{$self}) { $anything->create(@_); } }