Tengo una duda que quizás podáis resolverme, y que me esta dando dolores de cabeza:
Using perl Syntax Highlighting
my $outKey = &func();
if (defined $outKey) {
my @outList = qw(CLT DFF DFM);
if (grep(/$outKey/,@outList )) {return 1;}
}
else {return 1;}
if (defined $outKey) {
my @outList = qw(CLT DFF DFM);
if (grep(/$outKey/,@outList )) {return 1;}
}
else {return 1;}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El caso es que tengo este pequeño trozo de código.
En $outKey, recupero una cadena de caracteres determinada, la cual puede contener todo tipo de caracteres, incluso caracteres reservados para las regexp de Perl.
Lo que pretendo es verificar que dicha cadena de caracteres no está presente en la lista definida por @outList, para lo cual uso la instrucción "grep" de Perl.
El problema lo tengo cuando $outKey contiene caracteres reservados en Perl, como por ejemplo backslash (\), paréntesis (), ...
Por ejemplo, para el siguiente valor de $outKey: FQ)
obtuve el siguiente error durante la ejecución del grep: Unmatched ) in regex; marked by <-- HERE in m/FQ) <-- HERE / at ...
Para este otro siguiente valor de $outKey: FQ\
obtuve el siguiente error: Trailing \ in regex m/FQ\/ at ...
¿Alguien ve cómo modificar dicho código de manera que si en $outKey tengo caracteres reservados, pues que sean interpretados como caracteres normales de forma que el grep funcione correctamente?
¡¡Muchas gracias por vuestra ayuda!!
Saludos cordiales,
Felipe