Is this Linux or Windows? If talking about Linux, then it works approximately like this. Each process gets section of memory that contains "code". Then there's section containing non-changeable data. And there's section for changeable data and stack. The latter 2 are writable, the first 2 are not, so they can be shared between processes. Threads share all sections of the process, but each thread gets its own portion of the stack.
Perl is no different, but one has to remember, that perl executes scripts and they are loaded into changeable section, so multiple perl processes may end up having their own copies of the script they execute. I say "may end up" because normally Linux does not allocate separate copy of memory page until process attempts to write into it (copy on write).