"r$p" and "u$p" are used in the pipe() call as filehandle names and also as keys into the %p hash. Therefore, %p is tracking something about the filehandles.