# Create widgets. mw = create_main_window display = create_display(mw) # open the file we monitor. filehandle = open_file_for_monitoring('filename') # set up monitor mw->repeat( 1000, [monitor_file, filehandle, display ] ) # start main loop MainLoop sub monitor_file { new_text = display->insert('end', new_text) display->adjust_vertical_scroll } #### sub MainLoop { while (1) { my $next_event = Get_Next_Event_From_Queue(); $next_event->execute; } }