Excuse my ignorance,
I maybe just reading your answer the wrong way but
from perlguts
So each subroutine is born with an array of scratchpads (of length 1). On each entry to the subroutine it is checked that the current depth of the recursion is not more than the length of this array, and if it is, new scratchpad is created and pushed into the array.