in reply to Re: Delete directories older than 60 days
in thread Delete directories older than 60 days

Yes, it worked:
... use File::Path qw( rmtree ); use Date::Simple ('date', 'today'); ... my $dir = '/dir/'; opendir (DIR, $dir) or die "Couldn't open $dir directory, $!"; while (my $directories = readdir DIR) { next if $directories=~/^\./; if ($directories=~/(\d{2})(\d{2})(\d{4})/) { my $dir_date = date(sprintf '%4d-%02d-%02d', $3, $1, $2); if (($today - 60) > $dir_date) { rmtree("$dir/$directories")|| die ("ERROR::: cant delete: $!"); } } } closedir DIR;
I woder if it could be done with "Time::Piece;" instead of "Date::Simple".
But thanks for the help!

Replies are listed 'Best First'.
Re^3: Delete directories older than 60 days
by toolic (Bishop) on Nov 14, 2014 at 21:36 UTC
    Yes. In fact it even simplifies the code, and you can use the Core Time::Piece module:
    use warnings; use strict; use Time::Piece qw(); use Time::Seconds qw(ONE_DAY); my $t = Time::Piece->new(); my $past = $t - (60 * ONE_DAY); while (<DATA>) { chomp; if (/\d{2}\d{2}\d{4}/) { my $dir_date = Time::Piece->strptime($_, '%m%d%Y'); print "delete $_\n" if $past > $dir_date; } } __DATA__ 11012014 11132014 10092014 09092014 11112015 01012015 04012015 01042011 10122014
Re^3: Delete directories older than 60 days
by poj (Abbot) on Nov 14, 2014 at 21:22 UTC
    #!perl use strict; use Time::Piece; use Time::Seconds; my $today = localtime; while (my $mdy = <DATA>){ chomp($mdy); my $dt = Time::Piece->strptime($mdy,"%m%d%Y"); my $age = int (($today - $dt) / ONE_DAY); print "$mdy $age\n"; } __DATA__ 11012014 11132014 10092014 09092014 11112015 01012015 04012015 01042011 10122014
    poj