Well this won't affect speed much but it removed duplicate code and increases readability.
UPDATE: my is expensive.
Move it out of (important) tight loops.
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); } #micr
+osleep
$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;
}
--
perl -pew "s/\b;([mnst])/'$1/g"