in reply to Event Driven - timer
Your problem is commonly asked in GUI code programs, like Tk, Gtk2, Wx, etc. They are eventloop driven, and while(1){} statements interfere with the loop functioning. There are a few ways around it, some are hacks, some are good design.
The best way around it is to use a thread, and it is mentioned in a section in "perldoc Event". Of course, if you use a thread, you may not need to even use Event.
A common hack, is to put a statement in your while(1) block to refresh the eventloop on each pass thru, like:
The drawback to this hack, is if your code is slow in sections, the loop won't update fast and you may miss prints.while(1){ ..... your code do_one_event_loop; # whatever Event syntax is ..... more of your code do_one_event_loop; # sprinkle them liberally }
Another hack, is to somehow alter your while(1){} code, to fit into the Event style of programming. You usually can run things on a timer, so maybe you can rewrite your while(1){} to be run as a timer by Event.
|
|---|