No one else mentioned debugging the core files. Core files are produced when a program segfaults and contain the final state of the program. A debugger can reconstruct the stack trace and at least tell you where it crashed. If you see a "core" file in the current directory, then you can debug it with gdb:
gdb /usr/bin/perl core
If perl isn't producing core files when it segfaults, you may need to change the process limits. On many systems, it is set to not create core files on crashes.
ulimit -c 10000000