Leser: 25
QuoteConstant subroutine CGI::XHTML_DTD redefined at /usr/lib/perl5/5.8.8/constant.pm line 103
2010-01-24T00:32:21 betterworldInterpretier's mal so, als ob Perl Dir sagen moechte, dass Du statt "-w" lieber "use warnings" benutzen solltest.
Quotezu tun haben soll, das verschließt sich mir leider.constant.pm line 103
2010-01-24T14:58:41 biancaEine Sub wurde neu definiert, soweit ich das ersehen kann.
Soll heißen, eine sub mit diesem Namen wird in der constant.pm definiert und sie war vorher schon definiert.
Passiert mir manchmal, wenn ich Module mehrfach use'e oder require'e
2010-01-24T15:10:15 EscapeAn keiner Stelle im Script wird CGI::XHTML_DTD geladen.
2010-01-24T15:15:04 bianca2010-01-24T15:10:15 EscapeAn keiner Stelle im Script wird CGI::XHTML_DTD geladen.
Dann kann es doch nur daran liegen, dass ein Modul mehrfach gezogen wird aus verschiedenen Skopes.
Wie soll sonst ein redefine zustande kommen?
2010-01-24T15:21:12 EscapeUnd nun laß es mal Gut sein - es sei denn Du hast eine fundierte Antwort auf die gestellte Frage.
2010-01-24T15:24:59 bianca2010-01-24T15:21:12 EscapeUnd nun laß es mal Gut sein - es sei denn Du hast eine fundierte Antwort auf die gestellte Frage.
Da bin ich mal auf die fundierten Antworten gespannt, die da noch kommen, ohne Deinen Code zu kennen.
Und ich entschuldige mich dafür, dass ich hilfreich sein wollte.
2010-01-24T15:29:44 EscapePlanloses herumgestochere kann unter keinen Umständen hilfreich sein - sorry.
2010-01-24T15:58:09 sid burnWenn im Modul "CGI" selber die constante zwei mal definiert wird, dann kommt es zu solch einem warning. Der springende Punkt ist aber. Solch ein warning kommt nur dann wenn auch warnings aktiviert wurde.
use warnings
use CGI qw/:standard/
2010-01-24T15:58:09 sid burnWenn du die Globale Variante nutzt kannst du also möglicherweise warnings sehen die deinen Code nicht betreffen, da andere ohne warnings Programmiert haben und diese nicht beachtet haben.
2010-01-24T17:00:24 EscapeSo scheint es denn wohl zu sein - das Hauptprogramm arbeitet ohne warnings.pm
Wäre es besser (portabler) wenn ich in meinem Modul das use CGI durch ein require ersetzen würde?
2010-01-24T17:57:10 sid burn2010-01-24T17:00:24 EscapeSo scheint es denn wohl zu sein - das Hauptprogramm arbeitet ohne warnings.pm
Wäre es besser (portabler) wenn ich in meinem Modul das use CGI durch ein require ersetzen würde?
Anstatt ein "#!/usr/bin/perl -w" als Shebang zu haben solltest du lieber "#!/usr/bin/perl" haben und stattdessen "use wanrings;" hinschreiben.
Noch besser wäre übrigens wenn du "#!/usr/bin/env perl" nutzt. Das respektiert auch ein anderes installiertes Perl des benutzers das er bevorzugt und weiterhin muss ein perl nicht an "/usr/bin/perl" zu finden sein.
2010-01-24T14:55:53 EscapeWas aber Dein Beitrag mitQuotezu tun haben soll, das verschließt sich mir leider.constant.pm line 103
Geht's also etwas genauer mit einer Antwort auf das geschilderte Problem?
2010-01-24T14:55:53 EscapeGeht's also etwas genauer mit einer Antwort auf das geschilderte Problem?
2010-01-24T17:31:17 LanX-2010-01-24T14:55:53 EscapeGeht's also etwas genauer mit einer Antwort auf das geschilderte Problem?
Witzig! Hier http://www.perl-community.de/bat/poard/thread/1445... beschwerst du dich über den Umgangston und in diesem Thread zickst du genervt rum als wären wir bei ner bezahlten Hotline.
Betterworld hat bereits den Nagel auf den Kopf getroffen, dein Konstrukt aktiviert warnings wo sie nicht aktiviert sein dürfen².
Sid und matthias haben dir sogar langatmig erklärt wieso -w global ist Wenn's also nicht vielleicht an deinen Apachekonfigs liegt¹ musst du die Ursache anderweitig suchen.
QuoteHalt Dich raus wenn Du nichts konstruktives zu sagen hast - Provokationen Deiner Art sind absolut unnötig in einem Fachforum und stellen Dich überdies auf eine Stufe mit Bianca.
2010-01-24T22:22:51 LanX-Ja, ist denn auf eurer Stufe denn überhaupt noch Platz???
2010-01-24T22:22:51 LanX-QuoteHalt Dich raus wenn Du nichts konstruktives zu sagen hast - Provokationen Deiner Art sind absolut unnötig in einem Fachforum und stellen Dich überdies auf eine Stufe mit Bianca.
Ja, ist denn auf eurer Stufe denn überhaupt noch Platz???
2010-01-25T09:21:30 GwenDragonbetterworlds Hinweis ist aber sinnvoll, da bei der Benutzung von -w als Schalter im Shebang des Skripts auch Warnungen der Module auftauchen. Redefines in Modulen passieren ab und an mal.
2010-01-25T09:21:30 GwenDragonAber ich schließe mal daraus, dass dein Skript auch ohne -w diese Meldung weiter wirft.
2010-01-25T14:54:16 Taulmarillconstant hat warnings standardmäßig eingeschaltet (zumindest bei perl 5.10.1 wo ich es nachgeschaut habe). Dass es warnt, wenn eine Konstante ein weiteres mal belegt wird, ist AFAIK normal und gewollt.
perl -e'use constant TEST => 1; use constant TEST => 1'
perl -e'use constant TEST => 1; use constant TEST => 2'
QuoteEin kurzer Test ergibt auch, dass bei selbem Wert, keine Warnung geworfen wird.
[...]
Versuche ich eine Konstante mit einem anderen Wert neu zu belegen, so bekomme ich immer eine Warnung.
1
2
perl -e'*TEST=sub(){1};*TEST=sub(){2}'
Constant subroutine main::TEST redefined at -e line 1.
Quoterequire bindet normalerweise ein Modul nur einmal ein, daher sollte CGI eigentlich auch nur einmal geladen werden. Wenn es aber eine cgi.pm gibt, wird diese natürlich zusätzlich geladen, auch wenn per use CGI; die CGI.pm bereits geladen wurde. (Achte auf Groß-/Kleinschreibung)
2010-01-25T18:53:06 pqedit: evtl. wird irgendwo "require 'pfad/zur/alten/CGI.pm'" aufgerufen, das könnte es erklären.
2010-01-24T17:31:17 LanX-²) oder die warning ist berechigt weil ein anderes Modul versucht in CGI rumzupfuschen... auch dass müsste man zu isolieren versuchen.
2010-01-24T14:55:53 EscapeGut - nun hast Du Deinen Spaß gehabt ;-)
Was aber Dein Beitrag mitQuotezu tun haben soll, das verschließt sich mir leider.constant.pm line 103
Geht's also etwas genauer mit einer Antwort auf das geschilderte Problem?
2010-01-25T19:49:21 betterworldMeine Rückmeldungen waren tatsächlich sehr umfangreich.2010-01-24T14:55:53 EscapeGut - nun hast Du Deinen Spaß gehabt ;-)
Was aber Dein Beitrag mitQuotezu tun haben soll, das verschließt sich mir leider.constant.pm line 103
Geht's also etwas genauer mit einer Antwort auf das geschilderte Problem?
Oh, aeh, wow, jetzt habe ich beinahe verpasst, auf deine ausfuehrliche Rueckmeldung zu antworten. Du hast ja leider auch nicht geschrieben, ob es das Problem geloest hat (den Rest vom Thread hab ich jetzt nur ueberflogen).
2010-01-25T19:49:21 betterworldDas hatte ich getan bevor ich das Forum mit der Dir lästigen Fragestellung beaufschlagt habe.Ehrlich gesagt habe ich auch nur nach der Fehlermeldung gegooglet
2010-01-25T19:49:21 betterworldAuch das war mir bei meinen Google-Recherchen aufgefallen - allerdings nicht im Zusammenhang mit RLS sondern bereits im Zuge der ersten 10 Ergebnisse die Google ausgespuckt hat.und herausgefunden, dass u.a. Randal L. Schwartz das Problem vor 10 Jahren schon hatte. In dem Thread, den ich da gefunden habe, ging es dann auch irgendwie um "-w", und mir schien es ganz plausibel, dass der Unterschied zwischen "-w" und "use warnings" genau fuer dieses Problem verantwortlich sein koennte.
2010-01-25T19:49:21 betterworldJa, haben sie - und zwar ausführlich und fundiert; im Gegensatz zu Deiner Lapidarantwort.Warum, haben ja andere schon geschrieben.
2010-01-25T19:49:21 betterworldUnd wieder einmal purer Sarkasmus aus den Höhen des Elfenbeinturms der Allwissenden heruntergerotzt.Viel Spass noch.