Perl - sustitución y unless

 
Vista:

sustitución y unless

Publicado por sisifo80 (1 intervención) el 20/11/2013 14:14:55
Buenos días,

Necesito editar un texto de tal forma que elimine toda cadena de caracteres que aparezca entre corchetes, a excepción de ciertas cadenas. Por ejemplo, imaginemos el siguiente texto:

Hola, [yo estoy empezando] a manejar perl, y [todavía no] tengo muchos conocimientos [sobre el tema]

Imaginemos que quiero obtener este mismo texto pero sin las frases que aparezcan entre corchetes, salvo que esas frases incluyan las palabras "no" o "el". Es decir, debería obtener lo siguiente:

Hola, a manejar perl, y [todavía no] tengo muchos conocimientos [sobre el tema]

Mi propuesta es la siguiente, pero no me funciona:

open F, shift;
while(<F>) {
s/\[(.*?)\]//g unless $1 =~ "no" | "el";
print;
}
close F;

La idea sería: sustituir toda cadena de caracteres incluida entre corchetes por cero (es decir, eliminarla), a no ser que esa cadena contenga las subcadenas "no" o "el".

¿Algún consejo?

Gracias anticipadas
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