Thread Problem mit verschachtelten Perl Objekten (3 answers)
Opened by burnersk at 2012-01-11 16:06

burnersk
 2012-01-11 16:06
#155387 #155387
User since
2008-03-25
83 Artikel
BenutzerIn
[default_avatar]
Hi,

normalerweise sollte doch bei dem folgenden Beispielcode eine "3" herauskommen, also jedes Objekt aufgerufen sein, oder? Falls nicht, wie kann ich diese Anforderung (alle Objekte inkl. das höchste Objekt werden getriggert) umsetzen?

Code: (dl )
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
39
40
41
42
43
44
45
46
#!/usr/bin/perl -wT
############################################################################
package P1;
sub new() {
warn __PACKAGE__;
my $this = shift(@_); # Invocand package name.
my $class = ref($this) || $this;
my $self = {};
bless($self, $class);
$self->initialize({@_});
return($self);
}
sub initialize($) { my $self = shift(@_); $self->{counter}++; };
############################################################################
package P2;
our @ISA = ('P1');
sub new() {
warn __PACKAGE__;
my $this = shift(@_); # Invocand package name.
my $class = ref($this) || $this;
my $self = {};
bless($self, $class);
$self->SUPER::initialize({@_});
$self->initialize({@_});
return($self);
}
sub initialize($) { my $self = shift(@_); $self->{counter}++; };
############################################################################
package P3;
our @ISA = ('P2');
sub new() {
warn __PACKAGE__;
my $this = shift(@_); # Invocand package name.
my $class = ref($this) || $this;
my $self = {};
bless($self, $class);
$self->SUPER::initialize({@_});
$self->initialize({@_});
return($self);
}
sub initialize($) { my $self = shift(@_); $self->{counter}++; };
############################################################################
package main;
printf "Depth: %d of 3\n", P3->new()->{counter};
############################################################################
1; # Don't forget to return a true value from the file.

View full thread Problem mit verschachtelten Perl Objekten