Recetas Perl¶
Leer desde consola¶
Al leer desde consola hay que hacer un chomp para que quite los caracteres de fin de línea que introduce. Por ejemplo:
print "Introduce nombre: ";
my $nombre = <STDIN>;
chomp $nombre;
print "\nEl número de teléfono de $nombre es $telefonos{$nombre}";
Wiki clásico a creole¶
Pasándole un fichero de tipo wiki clásico (gforge) lo convierte en wiki con sintaxis creole (bitbucket)
#!/usr/bin/perl
# wiki2creole.plx
# ... Pasándole un fichero de tipo wiki clásico (gforge)
# ... lo convierte en wiki con sintaxis creole (bitbucket)
# Primer intento: Version 0.1
# convirtiendo caracteres simples
# TODO:
# . Dar la vuelta a las urls:
# ... [a|b] => [[b|a]]
# Tabla de caracteres a convertir
# . __ => **
# . ! => = (a comienzo de línea)
# . '' => //
#print "Fichero a tratar (el fichero salida tendrá el mismo nombre con la extensión .wiki) :\n";
#my $entrada = <STDIN>;
#chomp ($entrada);
my $entrada ="prueba.txt";
my $salida = "$entrada.wiki";
open(IN, $entrada);
open(OUT, ">$salida");
while($linea = <IN>) {
$linea =~ s/^(\*+)/$1 /g; #listas
$linea =~ s/'{3}/\*\*/g; # itálicas y negrita
$linea =~ s/'{2}/\/\//g; # itálicas
$linea =~ s/_{2}/ \*\*/g; # negrita
$linea =~ s/^!+/=/g; #títulos
$linea =~ s/\[(.*)\|(.*)\]/\[\[$2\|$1\]\]/g; #urls
$linea =~ s/^\-+/----/g; #líneas horizontales
$linea =~ s/!([A-Z])/$1/g; #caracteres correctores de urls automáticas
print OUT $linea;
}
close(IN);
close(OUT);
schemaSpy¶
Modifica los html generados por schemaSpy para eliminar los anuncios y los botones de donación
#!/usr/bin/perl
# genera.plx
# ... Modifica los html generados por schemaSpy
# ... para eliminar los anuncios y los botones de donación
# ... le añade una entrada a las tablas de valores
print "Indica la ruta donde están los ficheros generados por schemaSpy \n [/cygdrive/c/Aplicaciones/sgf2/doc/diseño/bbdd/modelo] : ";
my $dirHtml = <STDIN>;
chomp ($dirHtml);
if ($dirHtml eq '') {
#Si no se ha dado ningún valor, lo toma por defecto
$dirHtml = '/cygdrive/c/Aplicaciones/sgf2/doc/diseño/bbdd/modelo';
}
my @listaHtml=`find $dirHtml -type f -name "*.html"`;
chomp (@listaHtml);
for (@listaHtml) {
print "Procesando: $_";
open(IN, $_);
print ".";
open(OUT, ">$_.tmp");
print ".";
while($linea = <IN>) {
if ( $linea =~ /donate/ or $linea =~ /google_ad/ or $linea =~ /sourceforge\.net/) {
#elimino las entradas a publicidad y donacion
$linea = '';
} else {
#cambios en las líneas
$linea =~ s/^src="http:\/\/pagead2//g;
}
if ( $linea =~ "<a href='index.html' title='All tables and views in the schema'>Tables</a></li>" ) {
# se añaden enlaces a las tablas de valores
$linea = $linea . "\n<li><a href='tablas.valores.html' title='Tablas de valores'>Tablas de valores</a></li>"
}
print OUT $linea;
}
print ".";
close(IN);
close(OUT);
`mv $_.tmp $_`;
print ".";
print "OK\n";
}
# Copia los ficheros necesarios para las tablas de valores
print "Copiando tablas de valores ";
`cp Tabla*.html tabla*.html $dirHtml`;
print "...OK";
Última actualización:
August 15, 2021