Deseo eliminar ficheros de un directorio que caduquen en dos días respecto el día actual.
El nombre de los ficheros tiene el siguiente formato: WC_2014032700.dat, WC_2014032712.dat...
He pensado en utilizar el nombre del fichero, aislar la cifra y compararla con la fecha actual para saber si son caducos y luego eliminar... pero me he quedado atascadillo. Muestro el código...
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- use Class::Date qw(date now);
- use File::Path;
- use File::Copy;
- $n = 2;
- $hoy = now;
- $data_limit = $hoy - "$n D";
- $Class::Date::DATE_FORMAT = "%Y%m%d%H";
- chdir($dir);
- open( LS, "ls |" ) or die $!;
- while (<LS>) {
- chomp( $data = $_ );
- @data = split( /_/, $data ); #separo el nombre por el guión
- @data2 = split( /./, $data[1] ); #separo el elemento data[1] por el punto
- $data3 = date $data2[0] . "0000";
- if ( $data3 < $data_limit ) {
- rmtree( $dir . "/WC_" . $data3 . ".dat" ) or die $!;
- }
- }
- close(LS);
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
pero no chuta... ¿alguna ayuda?
Gracias.