It would probably be better to keep your kid pids as keys in a hash, then delete them as they are reaped. You are currently printing all of the pids that were created on ctl-C.
The problem is that I know the script create processes 2556 and 2557 and the REAPER subroutine somehow did not catch it and in reality these children have exited already.