QuoteWenn du eine Rückreferenz von Button auf Container brauchst: dann übergib einfach die Container-Referenz und speichere sie irgendwo im Button-Objekt. Denk aber daran, dass du diese Referenz per Scalar::Util::weaken "schwach" machst, weil du dir ansonsten eine zirkuläre Referenz baust, die Perl nicht automatisch auflösen kann.
Das mache ich ja bereits (siehe mein code)
Aber kannst du mir das mit der Referenz nochmal erklären, mit einfacheren Worten? Ist das nicht ok wie ich das mache?
Hier zur übersicht:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
my $container = X->new(); #conti erzeugen
$container->GFXButton_add(PARAMENTer);
#--sub-- des contis, gibt
$GFXButton = X::GFXButton;
sub GFXButton_add
{return $GFXButton->new(@_);}
#--new-methode von GFXButton ---
#Erzeugen
sub new {
my ($class,@params) = @_;
my $self = {};
bless($self,$class);
#for(qw(ID APP X Y IMG IMGHV)){$self->{$_} = shift(@params);}
$self->{CONTAINER} = shift(@params); #Container
$self->{ID} = shift(@params); &n
bsp; #ID oder Name
$self->{APP} = shift(@params);
......
......
......
push( @{$self->{CONTAINER}->{BUTTS} } , $self);
return($self);
}
Beim Push wird das Button element in den Array des Contis geworfen und am ende return $self.
somit habe ich im Hauptskript zugriff auf jedes GFXButton-Objekt.
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;