Thread Array als Objektvariable (6 answers)
Opened by Robse at 2005-08-29 19:13

Robse
 2005-08-29 19:13
#57503 #57503
User since
2005-01-08
22 Artikel
BenutzerIn
[default_avatar]
Hallo, ich möchte ein Array als Objektvariable halten.
Eine Objektmethode soll dem Array ein Element hinzufügen.
Hier ist mein code bisher:
Test.pm:
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
sub new
{
       my $package = shift;
       my $self = bless{ testarray => undef }, $package;
       return $self;
}

sub testfunc
{
       my $self = shift;
       my $var = shift;

       my @testarray = $self->testarray();

       push(@testarray, $var);

       $self->testarray(@testarray);

       for(my $i = 0; $i < scalar(@testarray); $i++)
       {
               warn $i . "=" . $testarray[$i];
       }
}

sub testarray {
 my $self = shift;
 if (@_) {
   $self->{"testarray"} = shift;
 }
 return $self->{"testarray"};
}


test.pl
Code: (dl )
1
2
3
4
my $obj = MHMod::Test->new();

$obj->testfunc("a");
$obj->testfunc("b");

Das angehängte Element geht jedoch zwischen den Methodenaufrufen "verloren"
Es handelt sich wohl um ein Referenzproblem? Wie muss
ich den Code ändern?\n\n

<!--EDIT|Robse|1125328557-->

View full thread Array als Objektvariable