hallo Matti,
TIMTOWTDI (oder so ähnlich).
ups? Gibts einen regulären Ausdruck, der mit das übersetzt? *g*
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.
Einverstanden. Selbstverständlich habe ich den Ehrgeiz, ein "sauberes" Programm zu basteln.
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.
Auch einverstanden. Allerdings fällt es mir schwer, herauszufinden, wo ich nun "eher weniger allgemeine" Teile in meinem Script habe.
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.
Ich habe ein Beipiel grade in Arbeit, siehe [pref:t=69173&m=397730]. Inzwischen habe ich die Hinweise von Cheatah und Rolf allerdings berücksichtigt, so daß das dort (in diesem Thread) diskutierte Problem "behoben" scheint - allerdings ist mein Ergebnis wahrscheinlich nicht "schön". Das korrigierte Script liegt auf http://www.christoph-schnauss.de/temp/suche.txt. Zur Sortierung habe ich auf die Schnelle das von Stefan in SELFHTML (http://selfhtml.teamone.de/cgiperl/funktionen/listenhashes.htm#sort) angegebene Beispiel genommen - es sollte halt _erstmal irgendwie_ funktionieren, ehe ich an weitere Feinarbeiten gehe.
Dort habe ich "use vars qw()" eingesetzt ...
Ich habe einfach Zweifel, ob ich tatsächlich "sauber" arbeite. Daher habe ich gefragt.
Grüße aus Berlin
Christoph S.
mailto:christoph.schnauss@berlin.de
http://www.christoph-schnauss.de
ss:| zu:) ls:& fo:) va:) sh:| rl:|