Hallo zusammen,ich hoffe, dass mir einer von Euch bei folgendem Problem behilflich sein kann, da ich auch nach Tagen und endlosem Google'n keine Lösung gefunden habe.
Ich habe in Perl eine Klasse A implementiert, die neben 'new' eine Methode 'initWith' implementiert. Innerhalb von initWith erzeuge ich eine Instanz einer anderen Klasse, die zur Verarbeitung benutzerdefinierte Funktionen aufruft. Diese benutzerdefinierten Funktionen habe ich als lokale Funktionen innerhalb er Methode 'initWith' implementiert,da sie Werte liefern, die in Instanzvariablen von Objekten der Klasse A gespeichert werden sollen.
Im Pseudocode sieht das ungefähr so aus:
package A;
use strict;
use ...;
...
sub new
{
my $class = shift;
my $self = {};
$self->{VALUE1} = undef;
$self->{VALUE2} = undef;
$self->{VALUE3} = undef;
bless($self, $class);
return $self;
}
sub initWithXML
{
my $self = shift;
my $anObject;
my $handler1 = sub
{
my ($var1, $var2) = @_;
$self->{VALUE1} = $var2->giveMeAValue();
$self->{VALUE2} = $var2->anotherValue();
...
};
my $handler2 = sub
{
my ($var1, $var2) = @_;
$self->{VALUE3} = $var2->aThirdValue();
print $self->{VALUE1};
...
};
my $Handler = {'Key1' => \&{$handler1},
'Key2' => \&{$handler2}};
anObject = SomeClass->new(WithHandler => $Handler);
anObject -> operate();
return $self;
}
Datum: 24.11.2005-14:58
