Perl中的[email protected]
和$!
有什麼區別?使用[email protected]
輸出與eval
相關的錯誤。 $!
也用於捕獲錯誤。那麼他們之間有什麼區別呢?
6
A
回答
14
變量
[email protected]
,$!
,$^E
,和$?
包含有關不同類型的Perl程序的執行過程中可能出現的錯誤條件信息。顯示的變量按報告錯誤的子系統和Perl進程之間的「距離」排序。它們分別對應於由Perl解釋器,C庫,操作系統或外部程序檢測到的錯誤。
3
$!
在系統調用失敗時設置。
open my $fh, '<', '/foobarbaz' or die $!
這將死亡輸出「沒有這樣的文件或目錄」。
[email protected]
包含傳遞給die
的參數。因此:
eval {
open my $fh, '<', '/foobarbaz' or die $!
};
if ([email protected]) {
warn "Caught exception: [email protected]";
}
這是沒有意義的檢查[email protected]
不使用某種形式的eval
,它使不出來,檢查$!
當你已經不叫,可將其設置在一個錯誤的情況下的功能。
相關問題
- 1. `%in%`和`==`之間的區別
- 2. 'const ref'和'in'之間的區別?
- 3. '。'之間的區別和「。」 in java
- 4. `!== undefined`和`in`之間的區別
- 5. perl命令之間的區別'=>'和'='
- 6. 「(\ S +)\。」之間的區別和「(\ S +)|」在Perl
- 7. perl 5.8和5.10之間的區別
- 8. 之間的區別,has_content,ifmarkists in freemarker
- 9. {!!之間的區別!!}和{{}}
- 10. 之間的〜/和的區別../
- 11. DBIx :: Class和DBIx :: Abstract之間的區別?
- 12. Perl之間的區別<FH>和<$FH>
- 13. '#','%'和'$'之間的區別
- 14. '+ ='和'= +'之間的區別?
- 15. 「。+」和「。+?」之間的區別
- 16. .eq之間的區別。和==
- 17. #。/和#之間的區別。 ./
- 18. !=和!之間的區別==
- 19. 「%〜dp0」和「。\」之間的區別?
- 20. | =和^ = css之間的區別
- 21. 之間的區別。和#
- 22. ==和case之間的區別?
- 23. 「**/* /」和「** /」之間的區別?
- 24. jQuery - '。'之間的區別和「#」
- 25. 「?1」和「?」之間的區別
- 26. fmod和%之間的區別
- 27. 之間的區別:+和:+
- 28. COM IDL定義中的[in,out]和[out,retval]之間的區別
- 29. 子類和類別之間的區別?
- 30. JPQL操作員的IN和MEMBER之間有什麼區別?