in reply to Particle movement question

I recommend searching for related modules on CPAN. If you are really lucky, you will find a module to do the job for you. Short of this, you can still learn about corner cases you may not have thought of or neat ways to do part of the job, etc.
Bill