{ package Objects; use strict; use warnings; sub new { bless [], shift } sub add { push @{$_[0]}, $_[1] } sub call { $_->call for @{$_[0]} } } { package Object; use strict; use warnings; sub new { bless {}, shift } sub call { print "yoyoyo\n"; } } my $objects = Objects->new(); $objects->add( Object->new() ); $objects->add( Object->new() ); $objects->call;