$! ist eine dieser Kurzen Standardvariablen von Perl. $OS_ERROR ist die lange Schreibweise.
Im PerlFAQ steht folgendes:
$OS_ERROR
$ERRNO
$!
If used numerically, yields the current value of the C errno variable, with all the usual caveats. (This means that you shouldn't depend on the value of $! to be anything in particular unless you've gotten a specific error return indicating a system error.) If used an a string, yields the corresponding system error string. You can assign a number to $! to set errno if, for instance, you want "$!" to return the string for error n, or you want to set the exit value for the die() operator. (Mnemonic: What just went bang?)
Also see Error Indicators.
Zur Fehlermeldung: Kann es sein, dass der Pfad zu sendmail nicht (mehr) stimmt?