DateTime::Set を普通に from_datetimes() で作って iterator でまわしたり as_list でリストを受け取っても、 start と end のふたつの日時しかなくて範囲の日付全部を作ることができず残念だった。 perldoc を熟読して、 from_recurrence() を使えば良いことがわかった。 こんな風にすると、 @dt には $start から $end までの範囲の日時を表す DateTime オブジェクトが入る。 ->add(days => 1) はおまじない的というか、 recurrence で指定する無名サブルーチンは DateTime オブジェクトを一つ受け取り、 The recurrence must return the next event after that object. ということらしい。 my $span = D