It took me a long time to re-write HTML::FromText. I've been trying to do so on and off for a couple years. I've had at least four starts. It's been very frustrating. Basically, I've was making the problem much more difficult than it really was. At this go-round I chose to be slow and methodical. I only spent at most two hours at a time, in one day, working on it.
Even so, every so often I needed to do something else to get my mind off of the problem. Those things became Acme modules. I don't know if anyone else has the same experience, but this is how my latest Acme modules happened. Just thought I'd share.