l0g0s escribiste:Parece ser que de alguna forma sustituyes lo que está entre los primeros corchetes {} por los segundos.
En Perl, en el operador de sustitución, se pueden usar muchos delimitadores distintos. Si se usan las llaves, entonces no hay confusión con los caracteres '/', y por lo tanto, no hay que "espacarlos" para distinguirlos de los delimitadores del operador.
l0g0s escribiste:Pero, por ejemplo, si quisiera eliminar unas cuantas marcas (claro, siempre podría repetir el proceso sobre el fichero resultante), pero supongo que Perl es capaz de hacerlo todo en uno, pasarle, por ejemplo, 10 o 50 marcas y que me las quite todas del tirón, o ya haría falta más de una línea, no sé.
Una solución sería meter todas las marcas en un conjunto de alternativas:
Using perl Syntax Highlighting
perl
-00
-le '$_ = <>; s{<(HISTOGRAMA|DETALLE)> .+? </\1>}{<$1></$1>}gsix; print' prueba
.xml
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
(He vuelto a poner las comillas de Linux, que es donde trabajo)
De todas maneras, si el número de marcas empieza a crecer, es mucho mejor escribir un programa, ya que es más fácil de editar, que no una sola línea que se puede hacer muy larga y complicada.
l0g0s escribiste:Estaría bien una pequeña explicación de algunos comandos que has usado como $_ = <> \s* gsix.
El significado de
$_ lo tienes en
perldoc perlvar, el de
<> en
perldoc perlop, y el de
\s* y
gsix en
perldoc perlre.