[Vienna-pm] Modul - Informationen von Aufruf zu Aufruf merken
Marcel Grünauer
gr at univie.ac.at
Wed Apr 29 04:51:20 PDT 2009
Hi,
On Apr 29, 2009, at 1:46 PM, Baier Oliver wrote:
> Ich habe eine Methode in einem Modul, die beim Aufruf eine
> Information des vorherigen Aufrufs beachten soll. Nachdem es
> sich um ein Modul handelt und dem Anwender dieser Vorgang
> eigentlich transparent bleiben soll, will ich von
> Persistierungen ausserhalb des Perl-Programms wie DB, Datei
> & co eher Abstand halten; auch ist diese Information nach dem
> Ende des aufrufenden Programms nicht mehr von Bedeutung.
Mit Perl 5.10 kannst Du state-Variablen verwenden, siehe etwa http://szabgab.com/blog/2007/12/1198487488.html
In Perl 5.8 kannst Du entweder our-Variablen verwenden oder eine
closure.
Z.B. (ungetestet)
{
my $foo;
sub bar { ... verwendet $foo ... }
}
oder
sub bar {
our $foo;
}
Alle diese Dinge sind package-global. Wenn es sich bei dem Package also
um eine Klasse handelt, würde die Variable für alle Objekte dieser
Klasse
gelten.
Wenn Du einen Wert pro Objekt speichern willst, solltest Du dafür einen
Accessor bauen.
Marcel
More information about the Vienna-pm
mailing list