Thread Problem mit "Klasse" und Array Übergabe (6 answers)
Opened by FX at 2005-07-26 13:26

frodus
 2005-07-26 15:28
#56697 #56697
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
[quote=FX,26.07.2005, 13:03]Danke für die Antworten. So wie es frodus vorgeschlagen hat, funktioniert es:

Initialisieren:
Code: (dl )
1
2
3
4
sub InitMenuLines {
my $self=shift;
@{$self->{menuLines}} = @_;
}


Ausgabe hab ich jetzt folgendendermassen gelöst um auf die &$ref zu verzichten:
Code: (dl )
1
2
3
4
5
6
7
sub GetMenuLines {
my $self = shift;
my $idxFunc = shift;
# my $ref = $self->{menuFunc}->[$idxFunc];
# &$ref;
&{$self->{menuFunc}->[$idxFunc]};
}


Vielleicht kann mir die Zeile noch jemand kurz erklären:
Code: (dl )
@{$self->{menuLines}} = @_;



Grüße
Markus[/quote]
Hi,

Code: (dl )
@{$self->{menuLines}} = @_;


Da es sich bei $self->{menuLines} um eine referenz auf ein
anonymes Array handelt muss du es erst durch @{} dereferenzieren bevor
du es zuweisen kannst.

Solche zusammenhänge sieht man eigentlich immer ganz schon wenn man
$self mit dem Data::Dumper ausgeben lässt.

Gruss,

Frodus

P.S.: perldoc Data::Dumper

View full thread Problem mit "Klasse" und Array Übergabe