UPDATE: In my opinion it's essential to understand that fork does a 1-to-1-process copy. After that fork you have two processes with the same "Perl source code", just continuing to run at different positions in the code. (The if ($pid == 0) {).

That does also mean that there is a %children hash in the child process even when only meaningfully used by the parent for child bookkeeping. But, e.g. in the currently spawned child you could ask the child's copy of %children which other child processes were spawned and not reaped just until its own birth. A kind of "I do have the following older siblings".