Halihallo myMojito
Um nicht in jedem Skript den gleichen Code-Schnippsel einfügen zu müssen, habe ich die Funktionen in ein weiteres Skript ausgelagert. Dieses Skript rufe ich in den anderen Skripten an der geeigneten Stelle mit:
my $online_monitor = require "includes/online_monitor.pl";
auf.
IMHO falscher Ansatz. Ausgelagerte Funktionen gehören in Module, denn diese sind
dafür gedacht:
perldoc perlmod
perldoc perlmodstyle
Das aufgerufene Skript gibt eine Referenz auf ein Hash zurück, was auch alles wunderbar funktioniert. Jetzt möchte ich aber dem Skript "online_monitor.pl" noch einen Wert übergeben.... daran bin ich aber bisher gescheitert. Auch mein Versuch in dem Skript "online_monitor.pl" mittels caller() auf Variablen des aufrufenden Skriptes zuzugreufen schlug fehl.
Ein Script gibt keine Werte zurück (höchstens ein Exit-Code); wenn du es dennoch
ermöglicht hast, ist es höchstens ein Workaround; zudem wird dies bei use strict;
noch ärger, denn dann kriegt das required Script einen eigenen Namensraum und die
Variablen werden nicht mehr "an gemeinsamer Stelle" verwaltet...
Du möchtest _Prozeduren_ und _Funktionen_ verwenden, keine externen Scripte.
Kann mir jemand einen Tipp geben? Bei "use" meckert der Compiler mir an, das "use" nicht rechts neben einem "=" stehen darf. Ein Modul, das ich einbinde und aufrufe, möchte ich auch vermeiden, da ich am liebsten eine einzige Zeile stehen hätte, in der ich ersehen kann das eine Variable mit Werten aus einem anderen Skript gefüllt wird.
Nun, ich würde deinen bisherigen Weg verlassen und mich mit Modulen beschäftigen.
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.