use strict; use warnings; our @Workers; package Worker1; push @Workers, Worker1->new(); sub new { return bless {}, __PACKAGE__; } sub doStuff { print __PACKAGE__ . " reporting for duty\n"; } package Worker2; push @Workers, Worker2->new(); sub new { return bless {}, __PACKAGE__; } sub doStuff { print __PACKAGE__ . " standing by\n"; } package main; for my $worker (@Workers) { $worker->doStuff(); } #### Worker1 reporting for duty Worker2 standing by