sub foo { my ($self, $caller, @targets) = @_; for my $obj ( @targets ) { $obj->bar($self, ... ); } } sub bar { my ($self, $caller, @args) = @_; ... }