Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
ABadlyHackedUpClass.pm
# ABadlyHackedUpClass.pm -- Datenelemente als Klassenarrays
# VORSICHT: Speicherlecks bei der
# Zerstoerung von Objekten.
package ABadlyHackedUpClass;
# Klassenprivate Parallelarrays zur Speicherung von Objektattributen:
my @names = (); # Namen der Objekte
my @phones = (); # Telefonnummern der Objekte
my $maxpos = 0; # Naechste freie Position in @names und @phones.
my %obj2pos = (); # Objektzeiger(string) -> Position in @names, @phones
sub new {
my $classname = shift;
my $ptr = {}; # Irgendeinen anonymen Zeiger
bless($ptr, $classname); # zu einem Objekt machen,
$ptr->_initObject(@_); # mit Name und Phone initialisieren.
return $ptr; # Das war's!
}
sub _initObject {
my $obj = shift; # Objektzeiger
my ($name, $phone) = @_; # Initialisierungswerte
push(@names, $name); # ab in die Attributarrays!
push(@phones, $phone); # Genauso!
$obj2pos{$obj} = $maxpos++; # Neue freie Position aktualisieren.
}
sub getName {
my $obj = shift; # Von welchem Objekt?
return $names[$obj2pos{$obj}]; # Aha, das wollten wir wissen!
}
sub setPhone {
my $obj = shift; # Von welchem Objekt?
my $newphone = shift; # Welche neue Nummer?
$phones[$obj2pos{$obj}] = $newphone; # Alles klar!
}
# Und so weiter...
1;
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:49 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|