#!/usr/bin/perl use strict; use warnings; use File::Copy (); my $base = '/Volumes/case-sensitive/projects/monks/1190936'; my @time = (localtime)[ 5, 4, 3 ]; $time[0] += 1900; $time[1]++; my $dir_for_today = sprintf '%s/%04d/%02d/%02d', $base, @time; die "destination $dir_for_today is not a directory!\n" unless -d $dir_for_today; foreach my $file ( glob qq($base/*.txt) ) { File::Copy::move $file, $dir_for_today or warn "Can't move $file to $dir_for_today : $!"; }