in reply to
Perl tk gui hangs when large data thrown to it
The bottom-line is very simple: you are asking for something that is both technically impossible, and visually useless. A gui-display update should be periodic, driven by some kind of a timer. Once every 5 seconds, perhaps. Maybe once a second. You do not update the display "every time the data changes." Instead, you update the display to reflect changes made to any currently-visible widgets since the last update cycle. You're going to have to redesign this part of the code. There is no other option.