$^M

預設情況下,記憶體耗盡是無法捕獲的致命錯誤。但是,如果 Perl 編譯得足夠適當,Perl 可以在 $^M 死亡後將其內容用作緊急記憶體池。假設您的 Perl 是使用 -DPERL_EMERGENCY_SBRK 編譯的,並且使用了 Perl 的 malloc。那麼

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

將分配一個 64K 的緊急緩衝區供緊急使用。有關在編譯 perl 時如何添加自定義 C 編譯標誌的信息,請參閱 Perl 發行版中的 INSTALL 文件。為了阻止對此高級功能的隨意使用,此變數沒有 English 的長名稱。

此變數在 Perl 5.004 中添加。