Hallo,
ich hab folgendes Problem. Ich habe mir in Perl ein paar Klassen geschrieben (was die Objektorientierte Programmierung nennen
( ). Diese liegen in einem Unterordner des Skriptes von dem ich sie verwenden will. Um diese aufzurufen muss ich in meinem Script
aufrufen. Jedoch soll in ClassA auch ClassB verwendet werden. Schreibe ich in ClassA jetzt einfach
wird die Datei nicht gefunden. Wahrscheinlich weil im ausführenden Skript das Verzeichnis nicht als "Include"- Verzeichnis geführt wird?! Schreibe ich aber
so findet er die Datei erfreulicherweise. Jedoch muss dafür ClassB.pl gesondert im ausführenden Skript ge"use"t oder ge"requiere"t werden. Das will ich nicht, weil ich ja nicht jede Klasse angeben kann die irgendwie mal von der gewünschten Klasse verwendet wird.
Ausserdem hab ich gelesen das, dass do() wohl auch nicht verwendet werden soll da es eine schlechte Performance hat?!
Alternativ kann ich auch in der Klasse welche eine andere Klasse verwendet beim "use" oder "require" den relativen Pfad zum Skript mit angeben. Das sieht dann so aus:
Jedoch würde ich das auch nicht so toll finden da ich dann die Klassen wirklich nur mit dem Skripten verwenden könnte, welche eine Ordner- Hierachieebene über den Klassen sethen. Ich würde die Klassen gern von jeder beliebigen stelle aus benutzen können.
Als nächstes habe ich dann versucht ein zusätliches "include"- Verzeichnis hinzuzufügen.
Da findet er aber nicht mal ClassA. Verwende ich das "use lib" richtig?
Nun gut, was will ich eigentlich(
):
Ich möchte meine Klassen von jedem beliebigen Punkt aus verwenden und will wirklich nur die Klasse "use"n oder "requier"n mit der ich unmittelbar arbeiten möchte. Wenn ich einen kompletten Ordner(mit Unterordnern) "use"n oder "requier"n müsste wäre das nicht so schlimm.
Ich schätze mal die Antwort ist wohl naheliegend aber ich komm nicht drauf.
Ich komme aus der C,C++,C#,Java- Ecke und finde die "Freiheiten" von Perl schon etwas gewöhnungsbedürtig. Bitte verzeicht die dummen Fragen.
ich hab folgendes Problem. Ich habe mir in Perl ein paar Klassen geschrieben (was die Objektorientierte Programmierung nennen

Code:
use classes::ClassA
Code:
use ClassB; # oder...
requiere "ClassB.pl";
Code:
do ClassB;
Ausserdem hab ich gelesen das, dass do() wohl auch nicht verwendet werden soll da es eine schlechte Performance hat?!
Alternativ kann ich auch in der Klasse welche eine andere Klasse verwendet beim "use" oder "require" den relativen Pfad zum Skript mit angeben. Das sieht dann so aus:
Code:
use classes::ClassB; # oder...
require "classes::ClassB";
Jedoch würde ich das auch nicht so toll finden da ich dann die Klassen wirklich nur mit dem Skripten verwenden könnte, welche eine Ordner- Hierachieebene über den Klassen sethen. Ich würde die Klassen gern von jeder beliebigen stelle aus benutzen können.
Als nächstes habe ich dann versucht ein zusätliches "include"- Verzeichnis hinzuzufügen.
Code:
use lib "/classes"
Nun gut, was will ich eigentlich(

Ich möchte meine Klassen von jedem beliebigen Punkt aus verwenden und will wirklich nur die Klasse "use"n oder "requier"n mit der ich unmittelbar arbeiten möchte. Wenn ich einen kompletten Ordner(mit Unterordnern) "use"n oder "requier"n müsste wäre das nicht so schlimm.
Ich schätze mal die Antwort ist wohl naheliegend aber ich komm nicht drauf.
Ich komme aus der C,C++,C#,Java- Ecke und finde die "Freiheiten" von Perl schon etwas gewöhnungsbedürtig. Bitte verzeicht die dummen Fragen.