Tom: Maskierung schlägt fehl.

Hallöle,

Wollt folgendes Array bilden:
my @Varianten = ("unwichtig","unwichtig","url:(");

Dabei gibt es jedoch den Fehler, dass der dritte String im Array, die Klammer trotz einfacher Backslash-Maskierung andersweitig interpretiert und daher eine Fehlermeldung ausgegeben wird (siehe unten). Gibt es eine einfache Lösung dafür? Doppelt Maskierung hilft hier schon mal nicht weiter da dann der Backslash selber maskiert wird.

Fehelrmeldung:
Unmatched ( before HERE mark in regex m/url:( << HERE /

Anmerkung - Nutze folgende Module:

use warnings;
use strict;
use sigtrap;
use diagnostics;
use CGI::Carp qw(fatalsToBrowser);

  1. Sup!

    Vielleicht wurden single quotes ' bzw q// helfen.
    Vielleicht die Funktion quotemeta(), die es in irgendeinem Perl-Modul oder standardmaessig gibt.
    Vielleicht würde auch der komplette Code helfen - das ist ja wohl nicht alles. Und um 4 Uhr morgens macht man sowieso die tollsten Fehler ;-)

    Gruesse,

    Bio

  2. Hi auch,

    Wollt folgendes Array bilden:
    my @Varianten = ("unwichtig","unwichtig","url:(");

    wie Bio schon angedeutet hat: Dein "" maskiert Deine
    Klammer während der Evaluierung der Gänsefüßchen - er
    steht nicht als Zeichen im String drin.

    Singlequotes wären an dieser Stelle ohnehin besser.
    (Cheatah hätte jetzt bestimmt einen perldoc-Verweis
    dafür zur Hand ...)

    Viele Grüße
    <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael