我正在使用Perl檢查各種套接字選項的存在和默認值。在Perl中,如何檢查Socket選項的存在而不產生警告?
#!/usr/bin/perl -w
use strict;
use Socket;
if (defined(SO_BROADCAST)) {
print("SO_BROADCAST defined\n");
}
if (defined(SO_REUSEPORT)) {
print("SO_REUSEPORT defined\n");
}
當我運行這一點,輸出:
SO_BROADCAST defined
Your vendor has not defined Socket macro SO_REUSEPORT, used at ./checkopts.pl line 9
有沒有辦法做到這一點,而不在輸出端產生的警告?
你爲什麼要檢查子程序定義?這些實際上在Socket.pm中定義爲子例程而不是常量? – 2010-02-09 18:16:22
@Robert常量*是* subs!見http://perldoc.perl.org/perlsub.html#Constant-函數 – 2010-02-09 18:48:38
你的回答比我最初選擇的回答要好。 – 2010-02-10 18:31:48