Vie Dic 07, 2007 8:17 pm
|
 |
Tifa
Perlero Nuevo

|
Registrado: 27 Oct 2007
Mensajes: 11
|
|
| No sé si esto funciona. |
|
|
Ante todo quiero pedir disculpas por postear esta tontería, pero no sé si este código funciona o no ya que cada vez que intenta conectarse a Mysql para proseguir con el query se queda buscando y nunca me responde. No sé si funciona, y me gustaría saberlo ya que quiero usar dicho script para guardar en un archivo el listado de nuevas tablas creadas semanalmente por los usuarios.
Este es el código si alguien puede probármelo.
Este es el fuente
| Perl: | #!/usr/bin/perl
use strict;
use warnings;
use prueba;
our @todo = qw(coneccion msql data1 );
foreach my $efectivo ( @todo ) {
my $ejecucion = $efectivo-> conectar;
if ( $ejecucion ) {
$efectivo-> peticion;
}
else {
print "Error No se pudo\n";
}
open (ARCHIVO, '>>archivo.txt') || warn "$!\n";
print ARCHIVO $data1-> listar;
close(ARCHIVO );
};
exit 0; |
Este es el modulito:
| Perl: | package prueba;
require "prueba.pl";
use strict;
use Mysql;
sub data {
my $coneccionn = Mysql-> connect("localhost", "primaria", "marian", "123");
$coneccionn-> selectdb("primaria");
};
sub data1:: listar {
my $coneccionn = Mysql-> connect("localhost", "primaria", "marian", "123");
$coneccionn-> selectdb("primaria");
$coneccion-> listtables;
};
sub coneccion:: conectar {
do data ();
if (data ()) {
print STDOUT "Conexión realizada satisfactoriamente\n";
}
else {
print STDOUT "Error no se pudo conectar\n";
}
};
sub msql:: peticion {
do data ();
if (data ()) {
my @todito = data-> listtabbles; print "@todito\n";
}
else {
print "No se pudo\n";
}
};
1; |
Otra pregunta tonta adicional: si tengo un archivo con el siguiente texto "Hola Mundo" y quiero modificar la palabra "Mundo" por "Juan" por ejemplo, sé que se hace con un
| Perl: | $variable =~ s/Mundo/Juan/g; |
Pero esto solo imprime el cambio en pantalla con print, y yo lo que quiero es que se modifique realmente y se guarden los cambios efectuados en mi archivo. Alguien solo me dijo que se hace con '-i' pero no me dijo cómo... si alguien realmente sabe, agradecería me informara. |
|
|
|

Sab Dic 08, 2007 5:54 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
|
|
|
|
|
La variable $data1 no está declarada en ningún sitio... ¿no?
| Perl: | print ARCHIVO $data1-> listar; |
¿No será...?
| Perl: | print ARCHIVO data1-> listar(); |
En cuanto al resto del código, es bastante lioso... si quieres ver qué es lo que hace, te recomiendo que lo ejecutes paso a paso, con la ayuda del depurador.
En cuanto a la pregunta de la expresión regular, la respuesta es sí, se pueden hacer cambios en los mismos ficheros de los que leemos, con la opción '-i' o la variable global $^I.
Hay unos ejemplos muy claros del funcionamiento de '-i', en perlrun. El uso con la variable global $^I es algo más complicado. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|