Taint checking. With taint checking enabled, perl will die (or warn, with -t) if you try to pass tainted data (roughly speaking, data from outside the program) to an unsafe function (opening a file, running an external command, etc.). It is very helpful when writing setuid scripts or CGIs or anything where the script has greater privileges than the person feeding it data.
Magic goto. goto &sub does an optimized tail call.
The debugger.
use strict and use warnings. These can save you from a bunch of typos.