Until now, that is. Getting log descriptions is one of the more annoying approaches I've ever seen. Rather than simply including this data as part of a struct, they created pointers to data within the struct, which requires pointer arithmetic and loops. Ick.
The Win32::EventLog module source code has been somewhat helpful, but there's a bit too much Perl extension magic at times and I lose track of exactly how certain things are working. To make matters worse, I think the API is atrocious. The original author was clearly a hardcore C programmer, and the API reflects that. The final straw is that I can't even get the damned thing to work using the provided examples, and that's *without* turning 'strict' on.