Have you considered to put the reader in a different script and call this asynchrone from your app (as a different process). Then you can create a Timer to read the output of this script. Have used this kind to read the Perl Module List from my installation (take quite a while). Also I would recommend wxPerl (wxWidgets), but I dont know how much work you want to put in it (learning wxPerl takes a while, but it is worth it).