http://www.perlmonks.org?node_id=11112184


in reply to RFC: List of first day of each month

Looks good. I'd probably do it the same way. Alternatively, you can implement part of the logic yourself:
while ($date <= $endDate) { say $date; $date = 'Time::Piece'->strptime( join(' ', $date->year + ($date->mon == 12), $date->mon % 12 + 1 +, 1), '%Y %m %d'); }
Update: You can shorten your original solution. There's no need to parse the date again, just add the days.
while ($date <= $endDate) { say $date; $date += Time::Seconds::ONE_DAY * $date->month_last_day; }

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]