Ok, if anyone is interested, here is my answer: #!/usr/bin/perl -w
# Testing code for Exercise 6-1. Your task is to write the sub # gather_mtime_between. use strict; use File::Find; use Time::Local; my ($start, $stop) = @_; my @starting_directories = @_; my @found_items; sub gather_mtime_between { return ( sub { my $timestamp = (stat $_)[9]; if ($start <= $timestamp && $timestamp <= $stop){ push @found_items, $File::Find::name; } else { print "No file modified between $start and $stop in $File::Find::dir\n"; } }, sub { return @found_items } ) } my $target_dow = 5; # Sunday is 0, Monday is 1, ... @starting_directories = ("/home/io/chris_perl/int_perl/"); my $seconds_per_day = 24 * 60 * 60; my($sec, $min, $hour, $day, $mon, $yr, $dow) = localtime; $start = timelocal(0, 0, 0, $day, $mon, $yr); # midnight today while ($dow != $target_dow) { # Back up one day $start -= $seconds_per_day; # hope no DST! :-) if (--$dow < 0) { $dow += 7; } } $stop = $start + $seconds_per_day; my($gather, $yield) = gather_mtime_between($start, $stop); find($gather, @starting_directories); my @files = $yield->(); for my $file (@files) { my $mtime = (stat $file)[9]; # mtime via slice my $when = localtime $mtime; print "$when: $file\n"; } I think my main problem was that I didn't grasp how File::Find works. After I read the docs on CPAN, the solution came together. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/