Perl - Ayuda con sustitución de variables en patrones

 
Vista:

Ayuda con sustitución de variables en patrones

Publicado por Manu (2 intervenciones) el 10/02/2005 20:48:21
Hola,

tengo un problemilla a la hora de crear un patrón válido. Resulta que una parte del patrón es el valor de una variable, en la que está almacenado un nombre. Para ello dentro del patrón utilizo la forma ${var}. El problema está en que cuando ese nombre lleva incluído el carácter '+', ese patrón no reconoce la línea que debería. ¿Hay alguna forma de evitar que Perl interprete el contenido de la variable que hay en el patrón como una expresión regular y lo interprete como el texto que debería?

Muchas gracias, un saludo,

Manu.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con sustitución de variables en patrones

Publicado por Marcos Legido (12 intervenciones) el 10/02/2005 22:41:32
Creo que te complicas mucho la vida... Porque no usas directamente la variable sin más? ?_?

s/lo que sea/$dato/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con sustitución de variables en patrones

Publicado por Manu (2 intervenciones) el 10/02/2005 23:47:51
Hola,

gracias por el interés, creo que no me he expresado claramente, donde hago la sustitución de la variable es en el patrón, es decir, algo como esto:

s/lo que sea ${var} bla bla/otro texto/

El problema está en que si el contenido de $var tiene algunos caracteres como '+', '*', etc, al realizar la sustitución y ejecutar el comando, Perl los interpreta como cuantificadores, lo que me gustaría es saber si hay alguna forma de hacer que los interprete como caracteres.

Gracias, un saludo,

Manu.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con sustitución de variables en patrones

Publicado por Mike79 (3 intervenciones) el 18/03/2005 22:52:14
Por regla en perl todo caracter especial que sea antecedido por la diagonal no sera interpretado como caracter especial.

Entonces quedaria: \+

pero como tu estas usando variables
el \ se interpretaria, asi que deberia quedar \\\+

Saludos!
-
Miguel Angel
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar