Sigo a la carga, tengo el siguiente pedazito de código, que hace lo siguiente:
1)Compruebe si un directorio existe, sino -> lo crea
2)compruebe que existe el fichero, sino ->
3)Abre el fichero para append al final y escribe la última hora de actualización.
4)Abre el fichero para lectura, busca lo que esté a la derecha de UTC-># y me coge esos datos para compararlos con otra hora global (para saber si se ha actualizado hace más de 300 segundos)
Las preguntas son:
a) ¿La expresión regular que tengo puesta es la correcta?
b) ¿Cómo hago para que cada vez que lo encuentre me lo mande a una variable que pueda comprobar con mi tiempo global (para saber si se ha actualizado?
¡¡Gracias!!
PD: Igual esto no va en Básico, jeje
Using perl Syntax Highlighting
use DBI;
#Declaracion de variables Globales de tiempo, $hora_integracion es el timing mas unos segundos por si
#existieran cuellos de botella, 120 = 2 minutos + 20 seg de gracia
$hora_comienzo = time;
$hora_integracion = $hora_comienzo -140;
#Declaramos conexion a la DB
my @db_datos = ('DBI:Oracle:OPENVIEW', 'OVO_BAC', 'OVO_BAC');
my $dbh = DBI->connect(@db_datos) or die "no se ha podido conectar\n";
#Comprobamos si existe fichero, si no -> lo creamos
#Marcamos cuando hemos empezado a actualizar en UTC
my $dir_salida ="c:\\Logs_update\\";
if (!(-e $dir_salida)) {
mkdir($dir_salida) or die "Error al crear el directorio\n";
}
my $lastupdate = "c:\\logs_update\\last_update.txt";
if (!(-e $lastupdate)) {
open (SALIDA,">$lastupdate") or die "no se ha podido abrir el fichero para escritura\n";
}
else {
open (SALIDA, ">>$lastupdate");
print SALIDA "Tiempo de inicio del Script de integración en UTC->#$hora_comienzo#\n";
close SALIDA;
}
open (SALIDA,"<$lastupdate") or die "No se puede abrir el fichero para lectura de fechas\n";
my $Comprueba_update;
my @array_comprobados= (); #NOSE SI ENVIARLO A ARRAY O A VARIABLE
foreach ($comprueba_update =<SALIDA>{
if ($comprueba_update = ~ m/^UTC-># (\w+)/) {
AQUI IRIA LA VARIABLE A LA QUE LO MANDO PARA COMPROBARLO
}
#Declaracion de variables Globales de tiempo, $hora_integracion es el timing mas unos segundos por si
#existieran cuellos de botella, 120 = 2 minutos + 20 seg de gracia
$hora_comienzo = time;
$hora_integracion = $hora_comienzo -140;
#Declaramos conexion a la DB
my @db_datos = ('DBI:Oracle:OPENVIEW', 'OVO_BAC', 'OVO_BAC');
my $dbh = DBI->connect(@db_datos) or die "no se ha podido conectar\n";
#Comprobamos si existe fichero, si no -> lo creamos
#Marcamos cuando hemos empezado a actualizar en UTC
my $dir_salida ="c:\\Logs_update\\";
if (!(-e $dir_salida)) {
mkdir($dir_salida) or die "Error al crear el directorio\n";
}
my $lastupdate = "c:\\logs_update\\last_update.txt";
if (!(-e $lastupdate)) {
open (SALIDA,">$lastupdate") or die "no se ha podido abrir el fichero para escritura\n";
}
else {
open (SALIDA, ">>$lastupdate");
print SALIDA "Tiempo de inicio del Script de integración en UTC->#$hora_comienzo#\n";
close SALIDA;
}
open (SALIDA,"<$lastupdate") or die "No se puede abrir el fichero para lectura de fechas\n";
my $Comprueba_update;
my @array_comprobados= (); #NOSE SI ENVIARLO A ARRAY O A VARIABLE
foreach ($comprueba_update =<SALIDA>{
if ($comprueba_update = ~ m/^UTC-># (\w+)/) {
AQUI IRIA LA VARIABLE A LA QUE LO MANDO PARA COMPROBARLO
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4