Peter Squentz: perl -w *und* use CGI::Carp - geht das irgendwie sinnvoll?

Beitrag lesen

Ich möchte gerne meine Perl-Skripts mit der Option "-w" laufen lassen, um Warnungen bei der Verwendung illegaler Konstrukte zu erhalten.
Ich möchte auch gerne meine CGI-Skripte unter Verwendung von

»»    use CGI::Carp qw(fatalsToBrowser);

laufen lassen, um Fehlermeldungen im Browser zu sehen (und nicht in irgend einer Protokolldatei auf dem Server, die für Normalsterbliche kaum zugreifbar ist).

Beides ist sehr sinnvoll.

Beides einzeln funktioniert prima. Beides zusammen führt dazu, daß sich der Perl-Interpreter anscheinend aufhängt - jedenfalls braucht der Prozeß dann länger, als der CGI-Timeout meines Servers. (*Das* ist der Effekt, der bei der Betatest-Version der Suchmaschine auftritt, wenn eine nicht-case-sensitive Suche durchgeführt wird - hallo, Uschi ...)

Bei mir gibt's in Kombination keine Probleme. Welche Versionen benuntzt Du?

Konkret habe ich einen Hash mit Markierungen, in welchem Feld eines Indexeintrags gesucht wird. Werte in diesem Hash sind entweder "+" oder undefiniert.
Später greife ich auf diesen Hash zu, um zu prüfen, ob ich die zu durchsuchenden Daten in Kleinbuchstaben konvertieren muß:

»»   if ($Search_Areas {0} eq '+') { $IndexLine      = lc ($IndexLine);      }
»»   if ($Search_Areas {1} eq '+') { $DieseKategorie = lc ($DieseKategorie); }
»»   if ($Search_Areas {2} eq '+') { $DieserTitel    = lc ($DieserTitel);    }
»»   if ($Search_Areas {3} eq '+') { $DieserName     = lc ($DieserName);     }
»»   if ($Search_Areas {4} eq '+') { $DieserText     = lc ($DieserText);     }

Tip am Rande: Bei ausschliesslich numerischen Indexes kannst Du auch ein Array verwenden.

Ein Lesezugriff auf ein undefiniertes Element ist schlecht und fuehrt bei Verwendung des -w-Switches zu einer Warnung. Wenn Du nur die Zustaende + oder undefiniert hast, pruefe lieber so:

if (defined $Search_Aeras{4}) {...}

Peter