如何禁止Getopt :: Std :: getopts发出的警告消息?

Mat*_*w.J 1 perl silent getopts

我有短脚本test.pl

#!/usr/bin/perl
use locale;
use encoding 'utf-8';

use Getopt::Std;

getopts("dei") or print STDERR "TRALALALALA\n"; 
print"@ARGV\n";
Run Code Online (Sandbox Code Playgroud)

我需要抑制Unknown option:getopts生成的消息,并且只在stderr上获取我的TRALALALALA.

Zai*_*aid 6

{
    local $SIG{__WARN__} = sub { };  # Supress warnings
    getopts("dei")
        or print STDERR "TRALALALALA\n";
}
Run Code Online (Sandbox Code Playgroud)

或者您甚至可以在警告处理程序中嵌入"TRALALALALA":

{
    local $SIG{__WARN__} = sub { print STDERR "TRALALALALA\n" };
    getopts("dei");
}
Run Code Online (Sandbox Code Playgroud)