in reply to Which modules provide highest return-on-investment?

Since no one has mentioned it: DateTime is another great example. I resisted using it at all for a long time. It has big dependencies. It's difficult to understand its components. It has many moving parts. Date::Calc and Date::Manip are so easy by comparison. But in the end, date stuff is so messy, and weird and complicated that the seemingly difficult and scattered pieces of DateTime start to reveal themselves as necessary, clean, and flexible.

If I just want something like Date::Calc::check_date, great, but now if I have any plans to do anything more I reach for DateTime. My reticence kept me away from it for too long; it was false economy.

A few above have recommended just waiting till you need something to use it. I disagree. What happens when you wait till you need it is you don't even know what you need. It's like Turing machines. Any given package for a problem domain can do the work in front of you. You have to know them to know which you want. If you wait till the last minute to find out that DateTime or DBIC or Cat is the solution you want, you just let your deadline slip; maybe by a couple of weeks.

(update: jplindstrom was typing while I was so I didn't get the chance to say I agree completely, especially about skipping the mistakes -- packages with big, or expert, user bases tend to turn over bugs much more effectively.)