Net::RBLClient 参数

Net::RBLClient parameter

我正在尝试将其他 RBL 传递给 Net::RBLClient,示例代码:-

use Net::RBLClient;
my $rbl = Net::RBLClient->new;
$rbl->lookup('25.23.75.65');
my @listed_by = $rbl->listed_by;

文档说参数可以作为散列传递,但是其中一个参数(我正在尝试使用)"lists" 说它需要数组引用。无法理解它究竟是如何通过这个模块的。

我有一个像

这样的数组引用
my $rack = ['bl.spamcop.net', 'sbl.spamhaus.org', 'xbl.spamhaus.org'];

不确定这个引用是如何包含在模块构造中的。

文档:- CPAN

根据文档的外观,new() 方法接受一个可选的散列作为参数,因此将数组引用作为值传递给 lists 键。

my $rack = ['bl.spamcop.net', 'sbl.spamhaus.org', 'xbl.spamhaus.org'];

my $rbl = Net::RBLClient->new(lists => $rack);

# then, after the object is created, carry on

$rbl->lookup('211.101.236.160');
my @listed_by = $rbl->listed_by;

如果你needed/wanted对象实例化,你也可以用同样的方式添加其他参数:

my $rbl = Net::RBLClient->new(
    lists => $rack,
    max_time => 10,
    timeout => 3,
);

...等您也可以预先声明散列,然后将整个 shebang 传递给:

my %params = (
    lists => [
        $blacklist_1,
        $blacklist_2,
    ],
    max_time => 10,
    timeout => 3,
);

my $rbl = Net::RBLClient->new(%params);