Does one unit represent a grid (nxn dimension) or a point in space?
What is the unit of movement? Can objects only move gridsize units at a time or do you need partial movement, where an object could potential be in four "tiles" at once?
Knowing a bit more about the requirements and limitations can let you do a lot of tricks to speed up things.
I used to work at a game company years ago and did alot in these areas. If I can help, I'd be glad to give you some advice if it's something I've got experience with. Then again, our target machines where 386SX's so it was mostly done in ASM and some C. Very over optimized. Haven't done any games in Perl yet but the concepts should all translate.
-Lee
"To be civilized is to deny one's nature."