I was given the task of creating a simple calendar app on our Intranet to allow people to enter information. The interface is quite simple: a checkbox for each working day, and the user checks as few or as many as needed.
My first step was to search for "calendar" "html" on CPAN. I found two modules that appeared worthy of closer investigation: HTML::CalendarMonth and HTML::CalendarMonthSimple.
Given that my needs were, in my opinion, simple, I first looked at HTML::CalendarMonthSimple. The first thing I saw was a list of methods that continued beyond the bottom of the screen window. I thought "Yeoww! And this is the simple module!" and wondered what the other module must look like.
So I had a look at HTML::CalendarMonth, and straight away I saw a snippet that looked easy enough for me to understand. So I decided to use HTML::CalendarMonth instead. And so far I have had no reason to regret my choice.
I believe that HTML::CalendarMonthSimple is the canonical example of a simple module that has become decidely unsimple. If you're looking for an HTML calendar generator, HTML::CalendarMonthSimple is not, and HTML::CalendarMonth is. That is not to say that this module is not worth using, but first impressions count, life is short, and HTML::CalendarMonth is Good Enough For Me.