my @A0A1 = ( [2003,1],[2003,3],[2003,4],[2004,1] ); my @A0A2 = ( [2003,1],[2003,2],[2003,3],[2003,4],[2003,5],[2003,6], [2003,7],[2003,8],[2003,9],[2003,10],[2003,11],[2003,12], [2004,1],[2004,2] ); #### my @A0A3 = ( [2003,2],[2003,5],[2003,6],[2003,7],[2003,8], [2003,9],[2003,10],[2003,11],[2003,12],[2004,2] ); #### my $start_year = 2003; my $actual_year = 2004; my $actual_month = 3; while ( $start_year <= $actual_year ) { foreach ( my $i=1;$i<13;$i++ ) { if (( $actual_month > $i ) && ( $start_year == $actual_year )) { push @A0A2, [$start_year,$i]; } elsif ( $start_year != $actual_year ) { push @A0A2, [$start_year,$i]; } } $start_year++; }