package Helper; sub new{ my $class = shift; my %cfg = ( callback => undef, @_); # Callbackfunktion als Aggregat return bless{ callback => $cfg{callback} }, $class; } sub run{ my $self = shift; foreach my $label( qw(Anton Berta Cäsar Dora Emil) ){ # Callbackfunkton aufrufen # Keine Übergabe der Instanz # Übergeben werden nur die Daten $self->{callback}->($label); } } package main; # Funktionsreferenz my $callback = sub{ state $cnt = 0; print ++$cnt.": @_\n"; }; # eigene Instanz, Helper-Instanz als Aggregat my $main = bless{ HELPER => Helper->new(callback => $callback), }; # Delegation $main->{HELPER}->run; __END__ 1: Anton 2: Berta 3: Cäsar 4: Dora 5: Emil