Yeah, that date frozen at 5/5/2005 does seem odd. I believe it is caused by the way you setup your callback on the Get button. In [] brackets, it assigns $date when first compiling, while you want it to evaluate $date at the time of the button press. It's a fine detail in Tk callbacks, and causes alot of confusion. You are not the first to get whacked :-)
Try this:
my $get_button
= $mw->Button(
-text=>'Get',
# -command=>[\&ff_get, $date, $cd ],
-command => sub{ ff_get($date,$cd) }
)->pack();