Matti Maekitalo: wie sinnvoll ist "use vars qw();" ?

Beitrag lesen

Hi Christoph,

Mal eine etwas theoretische Frage: wann ist die Verwendung von "use vars qw()" sinnvoll und wann kann oder soll man darauf verzichten?

TIMTOWTDI (oder so ähnlich).

Grundsätzlich heißt es bei "sauberem" Programmieren, möglichst mit wenig globalen, dafür mit den passenden privaten Variablen zu arbeiten, damit die Schnittstelle einer Subroutine deutlich wird. Daran sollte man sich insbesondere halten, wenn man den entsprechenden Programmteil mehrmals verwenden will - dann ist das beinahe unerläßlich.

Ist dein Programm eher weniger allgemein, spricht wenig dagegen, einige Variablen global zu handhaben - um mehr Übersichtlichkeit zu wahren. Das trifft insbesondere zu auf kurze Programme. Eine "Schnittstelle" für eine eigene Funktion zu beschreiben, die man sicher nur einmal braucht, ist rausgeworfene Zeit.

Zu deinem Beispiel mit $cgi - in einem solchen Fall würde ich das CGI-Objekt global verwalten, allerdings diese nur in deinem Hauptquelltext abfragen, nicht in den Subroutinen. Das ist allerdings größtenteils Geschmackssache.

use Tschoe qw(Matti);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.