To add a counter-point to all the anti-POE comments (which, admittadly, your post definitely seems to be asking for), I'll list some of the reasons why I like POE:
- It's generalized. There are other ways to get a decent event look, for instance with Gtk2 or Tk, but they're usually geared towards something in particular. POE, on the other hand, is general-purpose.
- There are lots of premade bits and pieces that can plug into POE. If you check out the CPAN respots for POE, you can see what I mean. There's a lot of functionality there that plugs together nicely, which can save a lot of time.
- It does a lot of work for you. The things it does are not groundbreaking, nor are they really very difficult to do. It's just that POE already does them, so I don't have to worry about them. Again, this can save a lot of time.
- It's flexible in all the right places. This may be a corollary to my first point, but I think it's worth mentioning. Even though POE provides a lot of its own functionality, you don't have to necessarily use it. You can replace various chunks as necessary, which can be very useful in certain circumstances.
- It works. I have heard more than one person rail against its cooperative multitasking(ness?), or against its somewhat odd parameter passing (which actually makes a lot of sense if you read the justification), but the fact of the matter is that despite these "problems", POE works very well. It does its job, it works as advertised, and it helps save time. At least, that's been my experience -- others will obviously disagree. :-)