[英]Catching undeclared use of a filehandle in Perl
以下 Perl 程序在執行過程中不會出現 output 任何錯誤。 有沒有辦法在嘗試打印到未聲明的句柄時引發異常? 對於下面的情況,未聲明的句柄將是STD_ERR
和DOES_NOT_EXIST
。
use strict;
print STD_ERR "(UNDECLARED) DOES NOT PRINT\n";
print STDERR " (EXIST) DOES PRINT\n";
print DOES_NOT_EXIST "(UNDECLARED) DOES NOT PRINT\n";
盡管上面的代碼被簡化以說明問題,但我浪費了幾十分鍾試圖在我的實際程序中找出問題。 在我的真實程序中,我意識到我拼錯了要打印的句柄。 我想避免這種浪費時間,但use strict;
根本不這樣做。
您可以使用use warnings 'unopened'
來警告未打開的文件句柄的使用。 要使警告致命(即拋出異常),您可以使用:
use warnings FATAL => 'unopened';
另請參閱perldoc 警告和perldiag
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.