my($key, $d); while(1) { #Does this really need to be called each round? #(no dox), if so move into until $event->pump(); until ($event->poll != 0) { select(undef,undef,undef, 0.01); } #microsleep $key = $event->key_sym(); $d = 0; $d = 1 if $event->type == SDL_KEYDOWN; $xplus = $d if $key eq SDLK_RIGHT; $xminus = $d if $key eq SDLK_LEFT; $yminus = $d if $key eq SDLK_UP; $yplus = $d if $key eq SDLK_DOWN; $fire = $d if $key eq SDLK_SPACE; exit if $key eq SDLK_ESCAPE; }