If you compare the needed framework knowledge and the code size of the two examples, you might understand why I consider POE a "solution". I find the programming model of POE especially inconvenient because the language does little to support something like local scope for event based/message passing systems, unless you consider manually keeping state in a stash as support.
Still, thanks for pointing out that there is a working solution with POE and also pointing towards http://poe.perl.org which is a valuable resource if you want to use POE.