use 5.010;
use strict;
use warnings;
use POSIX qw<strftime>;
my @loc = localtime();
for ( 1..12 ) {
say strftime( qq{<option value="01/%m/%Y">%b 07</option>}, @loc );
$loc[4]--;
}
Выход:
<option value="01/05/2011">May 07</option>
<option value="01/04/2011">Apr 07</option>
<option value="01/03/2011">Mar 07</option>
<option value="01/02/2011">Feb 07</option>
<option value="01/01/2011">Jan 07</option>
<option value="01/12/2010">Dec 07</option>
<option value="01/11/2010">Nov 07</option>
<option value="01/10/2010">Oct 07</option>
<option value="01/09/2010">Sep 07</option>
<option value="01/08/2010">Aug 07</option>
<option value="01/07/2010">Jul 07</option>
<option value="01/06/2010">Jun 07</option>
Только для улыбок, альтернативная сжатая версия:
use 5.010;
use strict;
use warnings;
use POSIX qw<strftime>;
say join( "\n"
, map {
my $t = strftime( qq{<option value="01/%m/%Y">%b 07</option>}, @$_ );
$_->[4]--;
$t;
}
(( [ localtime ] ) x 12 )
);