Perl 中有各種全域性特殊變數。我們已根據其用法和性質將它們列在不同的塊中:全域性陣列特殊變數@ARGV包含用於指令碼的命令列引數的陣列。@INC包含要查詢 Perl 指令碼以由 do、require 或 use 結構進行評估的位置列表的陣列。@F當給出 -a 命令列開關時,輸入行被分割到的陣列。全域性雜湊特殊變數%INC包含每個已透過 do 或 require 包含的檔案的檔名的條目。%ENV包含您當前環境的雜湊。%SIG用於設定訊號的雜湊…… 閱讀更多
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