On 9/10/07, Mathew Snyder <[EMAIL PROTECTED]> wrote: > I have a script which has to be manually edited to run for a span of days. > When > these days are over several weeks it can be clearly tedious to enter dates in > yyyy-mm-dd format. I've decided to set it up to ask for user input. > > What I need is some input on is how to make it create the array for all the > dates requested. For instance, if someone wants to run the script spanning > 07/20/2007 to 08/20/2007 how can I split that up to ensure it runs across all > days and both months? > > I'm thinking I would have to split each argument into an array and then create > an array for the months and days running a foreach loop over them both. But > then, how would I accommodate the varying number of days in each month? snip
Take a look at the DateTime modules. #!/usr/bin/perl use strict; use warnings; use DateTime; my %start; @start{qw<month day year>} = split /\//, shift; my %end; @end{qw<month day year>} = split /\//, shift; my $cur = DateTime->new(%start); my $end = DateTime->new(%end); while (DateTime->compare($cur, $end) < 1) { print $cur->strftime("%Y-%m-%d\n"); $cur->add(days => 1); } [EMAIL PROTECTED]:~$ perl t.pl 09/10/2007 09/24/2007 2007-09-10 2007-09-11 2007-09-12 2007-09-13 2007-09-14 2007-09-15 2007-09-16 2007-09-17 2007-09-18 2007-09-19 2007-09-20 2007-09-21 2007-09-22 2007-09-23 2007-09-24 snip > Any input will be appreciated. Thanks. snip -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/