Que un proceso se quede sin memoria no hace que el sistema operativo lo mate. Cuando no hay memoria las llamadas a
malloc fallan y al nivel de Perl esto normalmente se manifiesta como un mensaje "
Out of memory" o en el peor de los casos un SIGSEGV.
Lo que sí mata procesos en Linux es el OOM-Killer (
Out Of Memory Killer) que corre cuando el sistema operativo permite que entre todos los procesos reserven más memoria del total de la que dispone la máquina entre RAM y swap (
memory overcommit) y éstos, en algún momento acaban realmente requiriendo más de la que está disponible (en la práctica por el COW, los procesos suelen usar mucha menos memoria de la que reservan). Pero desde hace ya tiempo el
overcommit de memoria viene deshabilitado por defecto (puede verse si está activado corriendo
cat /proc/sys/vm/overcommit_memory). En cualquier caso, las acciones del OOM-Killer aparecen en los logs del sistema.
En este enlace hay bastante documentación de cómo funciona el sistema de memoria virtual de Linux:
http://linux-mm.org/LinuxMMDocumentation