The idea is good, but a couple of things prevents me from using this interface.
First, the use of TryCatch (which brings the Moose ecosystem) makes the startup overhead too high for my taste (about 0.5s on my PC). Which is rather unfortunate because Date::Holidays itself does not use Moose.
Second, the interface assumes that a country has a single set of holidays, which is too restrictive in some cases. A more flexible/general interface would allow adding more calendars based not only on country but also religion, special community, organization, etc. And allow adding custom calendars.
I think the idea behind a Date::Holidays interface is flawed:
1. Wouldn't it be better to have a wrapper that reads arbitrary iCal files (which could have anything from holidays to events for specific institutions)? There are already many published calendars which are used by calendar applications ranging from Mozilla Calendar, Mac iCalendar, KOrganizer, etc. Better to have the module use that information (which might already be available on a machine) than duplicate (and inaccurate) information?
2. Why are holidays just delineated by countries? Don't various states and provinces have their own local holidays? Don't some localities (e.g. Scottish councils) have their own holidays? Don't some institutions (e.g. schools) have their own holidays that that they honor? And what about religious holidays?
3. Differentiate holidays from noteworthy events. Daylight savings time is a noteworthy national event, but is hardly a holiday. If one boths to put this information in a module usable by a computer, then there should be meta-information about this event that the computer can use (e.g. to know whether to expect more or less activity on the network).