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.