7 Einträge, 1 Seite |
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"};
}
1
2
3
return $self->{"testarray"}; # gibt eine arrayreferenz zurueck
my @testarray = $self->testarray(); # weist die arrayreferenz $testarray[0] zu
1
2
3
4
5
6
7
8
9
10
11
12
return $self->{"testarray"};
my $testarrayRef = $self->testarray();
push(@$testarrayRef, $var);
# wenn du mit referenz arbeitest, brauchst du das nicht mehr,
# weil du die daten direkt veraenderst, wenn du mit der ref arbeitest
# $self->testarray(@$testarrayRef);
for my $i (0 .. $#$testarrayRef) {
warn $i . "=" . $testarrayRef->[$i];
}
my $self = bless([], $class);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub new {
my $package = shift;
my $self = { testarray => [ ] };
bless $self, $package;
return $self;
}
sub testmethod {
my ( $self, $var ) = @_;
my @testarray = @{ $self->testarray }; # dereferenzieren
push(@testarray, $var);
$self->testarray( [ @testarray ] ); # referenzieren
for(my $i = 0; $i < scalar(@testarray); $i++)
{
warn $i . "=" . $testarray[$i];
}
}
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
use strict;
use warnings;
package Foo;
sub new {
my $class = shift;
my $self = { testarray => [] };
bless $self, $class;
return $self;
}
sub testfunc {
my $self = shift;
my $var = shift;
push( @{$self->{testarray}}, $var );
return 1;
}
sub list {
my $self = shift;
return @{$self->{testarray}};
}
package main;
my $foo = new Foo;
$foo->testfunc("a");
$foo->testfunc("b");
print $foo->list, "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my $a = MyArray->new;
$a->testfunc('foo');
$a->testfunc('bar');
$a->testfunc('baz');
print "$_\n" for $a->list;
package MyArray;
sub new { bless [], shift }
sub testfunc { push @{ $_[0] }, $_[1] }
sub list { @{ $_[0] } }
1;
7 Einträge, 1 Seite |