The VM value is the address space allocated by an application, not the memory used. It doesn't give any reasonable result at all.
RSS is the memory actually used and this is not shared across instances. The sum of RSS of all processes is the memory (including swap) used on your computer. Add kernel memory, disk cache and free and you got all of your memory.
If you want to share some memory, "use" all required modules and start threading, but you need to check if all modules are thread-safe and ensure your code to be thread-safe.
If you care about CPU or memory usage, remove PEO and Moose from your project as they eat up half of the scripts memory.