Hi,
ich möchte gerne bei der Erzeugung eines Modules mit new() gleichzeitig eine Code-Referenz an ein anderes Modul übergeben.
sub new {
my ( $self, $Web ) = @_;
croak( EC_1 ) unless $Web;
my %config;
$config{ Web } = $Web;
my $self_ = bless( %config, $self );
$Web->add_Menu( sub { return $self_->main() }, [ "Item1", "Item2" ] );
#return bless( %config, $self );
return $self_;
}
Sowas in der Art, leider kann ich dann die Seite im Browser nur einmal aufrufen, beim zweiten mal lädt der unendlich lang.
Das ganze Funktioniert, wenn ich
return $self->main()
als anonyme Coderef übergebe, hat aber den Nachteil, daß ich das %Config noch nicht im $self habe und somit nicht das komplette Objekt besitze.
Meine Frage ist, ob jemand ne Ahnung hat wie man sowas realisiert, bzw was der Unterschied ist in folgenden Zeilen:
$self_ = bless( %config, $self ); return $self_;
return bless( %config, $self );
danke, Alex