It looks like Async::Selector does what I want:
http://search.cpan.org/~toshioito/Async-Selector-1.02/lib/Async/Selector/Example/Mojo.pod
Also, from irc here is another approach that may provide some insight:
https://gist.github.com/jberger/78d7c1649d7acbab6a94
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.