Scrat, you can't assign using an idiom similar to pre/post increment/decrement. Also the code, the code that goes between the semi-colons is not limited to the traditional (my $i=0; $i<$X; $i++), although I am pretty sure that the middle code segment (;$i<$X;) must evaluate to true or false in some form because it is the stopping condition.
And while we're throwing around our favorite date modules, I like Date::Pcalc.