[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