----- Original Message -----
From: "Lars Balker Rasmussen" <lars@balker.org>
>
> % perl -e '$t = "\\"; /$t/'
> /\/: trailing \ in regexp at -e line 1.
>
> % perl -e '$t = "(\\)"; /$t/'
> /(\)/: unmatched () in regexp at -e line 1.
>
> Så skyldes det næppe primært backslashen.
men linien fortolkes altså ;=)
> Men hvorfor har du lyst til at lave variable regex? Det kan give
> problemer for dit program, hvis det variable er ALT for variabelt, da
> perl dynamisk skal kompilere dit regex. (Det er det der går galt i
> ovenstående eksempler, da de er syntaktisk korrekte).
Det har jeg heller ikke. Jeg løber en fil/webside igennem linie for line for
forskellige keywords/link og gemmer den i en database. Undervejs skal strengene
lige justeres lidt - f.eks. med en simpel replace. Fejlen opstod så når der i
websiden stod en backslash eller andre perl specifikke tegn ;=).
> Men perl kan hjælpe:
>
> "perldoc perlre" siger:
>
> Because patterns are processed as double quoted strings, the
> following also work:
Hvad betyder "double quoted strings" egentlig ""?""
> [...]
> \E end case modification (think vi)
> \Q quote (disable) pattern metacharacters till \E
nu bruger jeg ikke vi ;=) så den røg ikke ind på lystaven da jeg læste det ;=)
>
> Prøv med følgende:
>
> $strHREFLink =~ s/\Q$strHREFPath//i; # Remove Path from filename
> --
Lige hvad jeg havde brug for. takker.
--
Flemming
Q2 3D Benchmarks:
http://www.ClanWorld.dk/Q2Bench/
Støjdæmp din PC ..:
http://hjem.get2net.dk/Quake2/LowNoise/