Thread Hat Perl events? (12 answers)
Opened by bianca at 2021-10-27 09:35

haj
 2021-10-27 10:34
#194037 #194037
User since
2015-01-07
558 Artikel
BenutzerIn

user image
2021-10-27T07:35:39 bianca
Guten Morgen!

Angenommen ich habe eine sub in der es eine Variable $back gibt. Nun möchte ich, dass return 0 gefeuert wird sobald $back sich ändert, um mir Quellcode zu sparen. Gibt es das in Perl >= 5.30.2?

Ebenfalls guten Morgen!

Die Sache ist mir nicht so ganz klar: Was heißt "return 0 gefeuert wird"? Heißt das "verlasse die gerade aktive sub, egal, welche das ist" - aber wie willst Du dann weitermachen? Wer außer Deinem eigenen Code kann denn $back ändern?

Aber mal zu den Möglichkeiten: Du kannst in Perl eigenen Code ausführen lassen, wenn sich eine Variable ändert. Das geht erstens mit dem eingebauten Perldoc:perlfunc tie (etwas umständlich) oder komfortabler mit dem Modul CPAN:Variable::Magic. Komfortabler deswegen, weil Du nur für das "interessante" Ereignis Code schreiben musst, während du bei tie (oder dem zugehörigen Core-Modul CPAN:Tie::Scalar) eine Klasse für alle Zugriffe auf $back erstellen musst. Gleich das erste Code-Stück in der Synopsis von Variable::Magic enthält ein Beispiel für eine Aktion beim Setzen einer Variablen.

View full thread Hat Perl events?