Private Variablen in Subroutinen

Wenn Perl uns für jeden Aufruf ein neues @_ geben kann, ist das dann auch mit Variablen möglich? Aber sicher!

Standardmäßig sind alle Variablen in Ihrem Programm als globale Variablen angelegt; das heißt, sie sind von jedem Teil des Programms aus zugänglich. Mit dem my-Operator können Sie aber jederzeit auch private bzw. lexikalische Variablen anlegen, zum Beispiel:

sub max {
  my($m, $n);    # neue, private Variablen für diesen Block anlegen
  ($m, $n) = @_; # die Parameter benennen
  if ($m > $n) { $m } else { $n }
}

Diese Variablen sind nun privat beziehungsweise besitzen einen auf den umschließenden Block begrenzten Geltungsbereich; andere Variablen außerhalb des Blocks, die auch $m oder $n heißen, werden davon nicht beeinflusst. ...

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.