in reply to Orbital starters

This is a fun idea. The code is a mess though. A lot doesn't work and the parts that do probably don't do what they're supposed to do. Even without strict and warnings, we get-

orbital2.pm did not return a true value. BEGIN failed--compilation aborted.

And with-

"my" variable $self masks earlier declaration in same scope at orbital +2.pm line 38. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 10. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 12. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 21. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 22. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 32. Global symbol "$seconds" requires explicit package name at orbital2.pm + line 38. Global symbol "$self" requires explicit package name at orbital2.pm li +ne 47. Compilation failed in require. BEGIN failed--compilation aborted.

Fun project though. I hope you keep plugging away at it.