Alexander (HH): Strings vergleiche, die Sonderzeichen enthalten

Beitrag lesen

normalerweise würde ich etwas in der Art nehmen:

if index($string,$suchstring)>=0) { ...

Aber das funzt nicht, wegen dem "@".

Nein, es funktioniert nicht, weil mindestens zwei Klammern fehlen.

Perl gibt - mit passenden Einstellungen - übrigens sehr hilfreiche Diagnosemeldungen aus. Dazu muß in der #!-Zeile hinter perl ein -w stehen, das Warnings einschaltet. Außerdem sollte das strict-Pragma mit "use strict;" geladen werden. Für CGIs ist der Taint-Mode extrem sinnvoll (zusätzlich -T auf der #!-Zeile).

Warum Dein Vergleich mit @ in Strings Probleme macht, wird Perl selbst Dir verraten.

Zusatzfrage: Wie kann ich verhindern, daß der obige Vergleich, aufgerufen mit einem leeren Suchstring ebenfalls eine Übereinstimmung ergibt?

Indem Du index mit den Parametern in der dokumentierten Reihenfolge aufrufst. Perl kann einige Dinge mit seiner "do what I mean"-Logik erraten, aber nicht alles.

Alexander