簡體   English   中英

在 Perl 中捕獲未聲明的文件句柄使用

[英]Catching undeclared use of a filehandle in Perl

以下 Perl 程序在執行過程中不會出現 output 任何錯誤。 有沒有辦法在嘗試打印到未聲明的句柄時引發異常? 對於下面的情況,未聲明的句柄將是STD_ERRDOES_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM