Perl 中的 confess 函式類似於 cluck;它呼叫 die,然後列印一直到源指令碼的堆疊跟蹤。package T; require Exporter; @ISA = qw/Exporter/; @EXPORT = qw/function/; use Carp; sub function { confess "Error in module!"; } 1;當從如下所示的指令碼呼叫時:use T; function();它將產生以下結果:Error in module! at T.pm line 9 T::function() called at test.pl line 4
Perl 中的 croak 函式等效於 die,只是它向上報告呼叫者一級。與 die 一樣,此函式還在向 STDERR 報告錯誤後退出指令碼:package T; require Exporter; @ISA = qw/Exporter/; @EXPORT = qw/function/; use Carp; sub function { croak "Error in module!"; } 1;當從如下所示的指令碼呼叫時:use T; function();它將產生以下結果:Error in module! at test.pl line 4與 carp 一樣,關於根據 warn 和 die 函式包含行和檔案資訊的相同基本規則適用。
Perl 中的 cluck 函式是一種增強的 carp,它遵循相同的基本原理,但也列印導致呼叫該函式的所有模組的堆疊跟蹤,包括原始指令碼的資訊。package T; require Exporter; @ISA = qw/Exporter/; @EXPORT = qw/function/; use Carp qw(cluck); sub function { cluck "Error in module!"; } 1;當從如下所示的指令碼呼叫時:use T; function();它將產生以下結果:Error in module! at T.pm line 9 T::function() called at test.pl line 4
Perl 中的 carp 函式是 warn 的基本等效項,它將訊息列印到 STDERR,而不會實際退出指令碼並列印指令碼名稱。package T; require Exporter; @ISA = qw/Exporter/; @EXPORT = qw/function/; use Carp; sub function { carp "Error in module!"; } 1;當從如下所示的指令碼呼叫時:use T; function();它將產生以下結果:Error in module! at test.pl line 4