这是什么' - >'在下面的背景下做的事情我不知道它意味着什么。 这不是我们创造的对象,至少不是传统的新方式,我也无法想象' - >' lines是子程序调用的参数。
my $Interface = SOAP::Lite
-> uri("urn:iControl:$name")
-> readable(1)
-> proxy("https://$sHost/iControl/iControlPortal.cgi");
在使用Perl数年之后,我们不得不继续使用这个第一次看到的语法。
我很困惑。
THX /赫尔曼
答案 0 :(得分:11)
a
->b(...)
->c(...)
->d(...)
只是一种更易读的写作方式
a->b(...)->c(...)->d(...)
这意味着
( ( a->b(...) )->c(...) )->d(...)
或
my $temp1 = a->b(...);
my $temp2 = $temp1->c(...);
$temp2->d(...)
它只是一系列方法调用,其中一个方法返回一个对象,该对象充当下一个的调用者。
SOAP :: Lite使用一个常见的“技巧”,让setter返回其属性设置的对象,允许
my $obj = Class->new();
$obj->setter1(...);
$obj->setter2(...);
$obj->setter3(...);
写成
my $obj = Class->new()
->setter1(...)
->setter2(...)
->setter3(...);