Persistente private Variablen (Zustandsvariablen)
Mit my
haben wir private Variablen für Subroutinen definiert. Allerdings wurden diese bei jedem Aufruf der Subroutine erneut definiert. Mit der Funktion state
lassen sich nun für Subroutinen private Variablen deklarieren, die zwischen den Aufrufen ihre Werte behalten.
Zu Beginn dieses Kapitels hatten wie eine Subroutine namens marine
, die einen Wert um eins erhöht:
sub marine { $n += 1; # globale Variable $n print "Hallo, Taucher Nummer $n!\n"; }
Da Sie mittlerweile wissen, wofür strict
gut ist, können Sie es in der neuen Version der Subroutine direkt verwenden und stellen erst einmal fest, dass $n
jetzt nicht mehr erlaubt ist. Allerdings können wir $n
auch nicht einfach mit my
als lexikalische Variable ...
Get Einführung in Perl, Sixth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.