As others have said, there are better ways to do this. But as for your question on CPU usage: the 99.9% that ps is reporting means that your perl process is using 99.9% of the CPU that is being used. So no other processes are using much to speak of. The usage reported by top is based on total capacity, so idle time is included in the total there.
To reduce a process's load on a system, see nice or the section on nice in your shell's man page.
Available for small or large Perl jobs; see my home node.