In Variables§

有关 $! 变量 的主要文档,请参阅 in context

$! 是错误变量。每个 routine 中都会创建一个新的错误变量。如果 try 块或语句前缀捕获到异常,该异常将存储在 $! 中。如果没有捕获到异常,则 $! 将设置为 Nil

请注意,CATCH不会设置 $!。相反,它们将块内的 $_ 设置为捕获的异常。

另请注意,$! 的使用与 $/ 的使用一样存在相同的线程安全问题。