$^M

默认情况下,内存不足是一个不可捕获的致命错误。但是,如果构建得当,Perl 可以在 die() 之后使用 $^M 的内容作为应急内存池。假设你的 Perl 是使用 -DPERL_EMERGENCY_SBRK 编译的,并且使用了 Perl 的 malloc。那么

$^M = 'a' x (1 << 16);

将分配一个 64K 缓冲区,以便在紧急情况下使用。有关在编译 Perl 时如何添加自定义 C 编译标志的信息,请参阅 Perl 发行版中的 INSTALL 文件。为了避免随意使用此高级功能,此变量没有 英语 长名称。

此变量在 Perl 5.004 中添加。