Perl' - >'奇怪的记法

时间:2014-02-18 16:26:28

标签: perl syntax

这是什么' - >'在下面的背景下做的事情我不知道它意味着什么。 这不是我们创造的对象,至少不是传统的新方式,我也无法想象' - >' lines是子程序调用的参数。

my $Interface = SOAP::Lite
  -> uri("urn:iControl:$name")
  -> readable(1)
  -> proxy("https://$sHost/iControl/iControlPortal.cgi");

在使用Perl数年之后,我们不得不继续使用这个第一次看到的语法。

我很困惑。

THX /赫尔曼

1 个答案:

答案 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(...);