pvaldes escribiste:Uso de split:
split /PATRON/,EXPRESION,LIMITE
sí límite = 2 sólo separa en dos campos, o sea una vez (ignorará todas las marcas de corte salvo la primera)
$preambulo =~ s/(\\usepackage){pst-calendar}//gi;
Muchas gracias, pero si cambio a
- my @coment=split(/\\begin{document}/, $archivo,2);
El problema persiste. El problema está en como defino el split()
y ojo que la sustitución hay que aplicarla a la primera variable solo, si divides en $preambulo y $documento con split luego
Leyendo perlfaq5 y revisando por los foros en inglés, me percato de que mis
script está mal, funciona, pero está mal.
No tengo bien definido el
script en la entrada (o variables, no lo sé
) para que haga el split() en $preambulo y $documento y efectué los cambios antes del primer
\begin{document} (es decir en $preambulo), pero aun así, comenta las líneas (pero en todo el archivo).
Por ahora creo que el problema a resolver es la división y separación en $preambulo donde se quiere comentar y $documento donde no quiero comentar. De no ser factible con split(), quizás pueda leer el bloque de texto entre \RequirePackage{graphicx} y \begin{document} que siempre están presentes en test-pdf.tex y efectuar los cambios ahí (encontré algo en
expresion-regular-para-identificar-una-linea-t5641.html?hilit=split), pero, creo que tendía que crear dos ficheros, y la idea es realizar los cambios y guardarlos en el mismo archivo. Se agradece el tiempo y dedicación a este "sub problema".
Cualquier ayuda, comentario y demás para arreglar el
script, se agradece.
El
script que utilizo (por ahora) es este:
pdfclean.pl
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use strict;
use Tie::File;
#Archivo que quieres editar
my $archivo = 'test-pdf.tex';
my ($preambulo,$documento) =split(/\\begin{document}/,$archivo,2);
my @coment=$preambulo;
#Usamos tie
tie @coment, 'Tie::File', $preambulo or die "No se comento ninguna linea: $!";
#Buscamos y comentamos
foreach my $preambulo (@coment) {
# Comenta las líneas que contienen los paquetes indicados
$preambulo =~ s/(\\usepackage){pst/\%\\usepackage{pst/i;
}#Termina la rutina
untie @coment;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Saludos y muchas, pero, muchas gracias (en especial a pvaldes por sus ideas y comentarios).