For the compatibility problem, there is a pattern called the "facade pattern" - other known names are "compatibility library", "ugly wrapper code" or "legacy support". You write your new library, using the new coding style, and supply a compatibility wrapper around it, that allows the rest of the projects to use the library until they adapt (to) the new API.
If you are not in the mood for programming, it is the wrong time for creative programming. If you really have to program/sit in front of a computer, do "stupid"/monotonous things like fixing documentation, writing stub end user documentation or stuff like that. But much better IMO is taking a break, and starting something recreative that takes your mind off these things and forces you to concentrate on other things - learning to juggle helped me for example, cycling or running might for you.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The
$d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider
($c = $d->accept())->get_request(); $c->send_response( new #in the
HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web