Thread Richtige Pfade beim Community Script (21 answers)
Opened by awangard at 2015-02-07 21:30

rosti
 2015-02-07 22:15
#179549 #179549
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
Quote
Programmieren ist ein Handwerk. Das musst Du, wie jedes Handwerk, selbst erlernen
(Niklaus Wirth).

Dazu gehört auch, wie Du Deinen Code organisierst: Möglichst so, dass er wartungsfreundlich und überschaubar ist.

Schöne Grüße ;)

Edit, ein bischen ausführlicher: Jede Perl-Anwendung, sei es als CGI fürs Web oder ein Script für die Kommandozeile, hat eine main. Diese main befindet sich in der ausführbaren Datei, das ist die package main; auch dann, wenn sie nicht explizit als Solche ausgewiesen ist. Eine main (das ausführbare Script) kann CODE-Sourcen weiterer Dateien einbinden mit use, require oder do (guck Dir die Unterschiede an).

Fürs Einbinden weiterer Dateien mit o.g. Operationen sind die Pfade im Array @INC ausschlaggebend.

Tipp:
Code (perl): (dl )
print "@INC";
zeigt Dir diese Pfade. Du kannst das @INC-Array erweitern wie jedes andere Array, empfehlenswert dazu ist das Pragma use lib qw(pfad1 pfad2 usw); womit Du zusätzliche Lib-Pfade einbinden kannst, use lib sorgt dafür, dass die hinzugefügten Pfade nicht doppelt oder dreifach im @INC stehen, sondern nur einmal.

In der Regel ist das Setzen eigener Lib-Pfade nur in der main erforderlich, es ist jedoch möglch, in externen Dateien auch weitere Lib-Pfade hinzuzufügen. Tipp: EIN zusätzlicher Lib-Pfad in der main gesetzt, weist den Weg für ALLE anderen zu kompilierenden Ressourcen.

Ein eigener Lib-Pfad muss nicht unbedingt relativ zu dem Verzeichnis sein, in welchem sich das ausführbare Script befindet. D.h., Du kannst einen eigenen Lib-Pfad sonstwo hin legen, im Fall einer Webanwendung jedoch so, dass die darin liegenden Dateien nicht über den Browser erreichbar sind (außerhalb DOCUMENT_ROOT).

Das Verzeichnis /cgi-bin/ ist per Apache-Config i.d.R. ein ScriptAlias, d.h., vom Browser aus gesehen gibt es da überhaupt keinen Bezug zum Dateisystem (diesen Bezug gibt es nur in der Serverkonfiguration). Über einen ScriptAlias im Browser aufgerufene Webressourcen versucht der Apache auszuführen. Es empfiehlt sich, im /cgi-bin/ nur ausführbare Dateien zu haben. Allein wegen der Übersicht: Konfigurationsdateien, weitere Moduldateien raus aus /cgi-bin/ und ab damit in das eigene Lib-Verzeichnis.

Soweit fürs Erste ;)
Last edited: 2015-02-08 11:09:50 +0100 (CET)

View full thread Richtige Pfade beim Community Script