Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Das lässt sich sogar erklären: Der Perl-parser funktioniert in diesem Fall so, alles ab ' ist eben nicht interpretierter Text bis zum nächsten '
Der nächste unkomplette ' wirft dann den Fehler an evtl. unerwarteter Stelle: der Interpreter sieht hier nur ein undefiniertes Tag mit viel Text danach.
Hätte ich im Nachhinein auch aus der Compilermeldung gesehen, aber mitm kompletten Plugin ists halt einfacher für den In-Kopf-Parser
die Zeilennummern sind nicht Teil des Codes, $Tag war vorher definiert.
Problem gelöst:
Die verwendete Syntax für $plugin_info war tatsächlich in Ordnung. Der Fehler lag einige (!) Zeilen weiter oben und wurde durch den Debugger erst weiter unten erkannt und mit einer irrelevanten, irreführenden Fehlermeldung versehen. Es fehlte an einer Stelle schlicht ein Apostroph (')! Mann, das Perl macht mich noch fertig!
Wie in anderen Threads schon erwähnt, habe ich nun mit Erfolg ausprobiert, globale Variablen pluginübergreifend zu verwenden. Einfach $plugname ersetzen durch 'soheisstdasPlugin', dann .'Name der globalen Variable', fertig. Naja, noch die geschweiften Klammern und der übliche Kleinkram.
Globale Variablen setze ich in den Plugins z.B. ein für bestimmte Zustände, z.B. Feiertag (0/1).
Auf den Apostroph-Fehler bin ich erst gestoßen, als du mir die Sicherheit gegeben hast, dass meine $plugin_info-Syntax richtig war. In der Doku Perldoc hätte ich diesbezüglich nichts gefunden. Also doch: Mensch schlägt Maschine! Herzlichen Dank! War vermutlich nicht meine letzte Anfrage in diesem tollen Forum.
Hmm, Doku ist knapp perldoc noch das beste..
$plugin_info ist ein simpler zweidimensionaler Hash, also dem wäre es erstmal egal ob da $plugin_info{$plugname.'_meins'} oder $plugin_info{'Hurz'} steht, der speichert das..
Mit dem ganzen Plugin liesse sich die Frage leichter beantworten; solange $Tag vorher (my $Tag) definiert wurde sieht das eigentlich gut aus..
Edit: die Zeilennummern sind nicht Teil des Plugin-code(?!)
ich brauche für eine Plugin-Logik permanente Werte (Tag/Nacht). Wenn ich eingebe
95 $plugin_info{$plugname.'_Tag'} = $Tag; #speichern lok. auf glob. Var.
96 $Tag = $plugin_info{$plugname.'_Tag'}; #übergeben global auf lokal
dann erhalte ich nur für die Zeile 95 folgende Fehlermeldung:
Bad name after _Tag' at (eval 2283) line 95, line 67085.
$Tag ist eine binäre Variable.
Wo ist der Syntax- bzw. Denkfehler? Die Hilfe im Wiregate ist hier nur sehr rudimentär. Wo finde ich denn eine ausführliche Dokumentation, in der z. B. auch $plugin_info dargestellt ist?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: