Leser: 1
|< 1 2 >| | 11 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
sub get_ding {
my $self = shift;
unless( exists $self->{'__DING'} ) {
# erstelle es
}
return $self->{'__DING'};
} # /get_ding
sub set_ding {
my $self = shift;
my $array_ref = shift;
$self->{'__DING'} = $array_ref;
} # /set_ding
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
#!/usr/bin/perl # vi:ts=4 sw=4 et: package ups; use strict; use warnings; sub new { my $class = shift; my %parms = @_; my $self = []; # array-ref push @$self, qw( abc def 123 456 ); bless $self, $class; return $self; } sub print_content { my $self = shift; my @args = @_; for ( @$self ) { print $_, $/; } } package main; my $a = ups->new(); $a->print_content();
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
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; package ups; { ### CLOSURE my @daten = (); # @daten ist nur in den Methoden bekannt, die # in diesem Block definiert werden. sub fill_data { @daten = qw( a b c 12 3 ); } sub print_data { for ( @daten ) { print $_, $/; } } } sub new { my $class = shift; my %parms = @_; my $self = {}; bless $self, $class; return $self; } package main; my $obj = ups->new(); $obj->fill_data(); $obj->print_data();
renee+2007-09-07 10:29:43--Wenn Du ein Programm hast, in dem es heißt
dann wird in Zeile 2 das Array angelegt und Speicher freigehalten. Der Referenzzähler ist dann "1". Wenn die Subroutine verlassen wird, wird das Array "zerstört", der Referenzzähler wird auf "0" gesetzt. Der Speicher wird freigegeben und Du kommst nicht mehr an den Inhalt ran.
|< 1 2 >| | 11 Einträge, 2 Seiten |