in reply to Event Driven - timer

almut gave you the answer, but she may have made it too technical.

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:

while(1){ ..... your code do_one_event_loop; # whatever Event syntax is ..... more of your code do_one_event_loop; # sprinkle them liberally }
The drawback to this hack, is if your code is slow in sections, the loop won't update fast and you may miss prints.

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.


I'm not really a human, but I play one on earth Remember How Lucky You Are