2017-09-30 17 views

回答

13
 
           Direct   Using References  Using References 
               Inline Syntax[1]  Arrow Syntax 

scalaritself    $s    ${$sr}    $sr->$* [3] 

array itself    @a    @{$ar}    $ar->@* [3] 
array element    $a[0]   ${$ar}[0]   $ar->[0] 
array slice     @a[0,1,2]  @{$ar}[0,1,2]  $ar->@[0,1,2] [3] 
array index/value slice[2] %a[0,1,2]  %{$ar}[0,1,2]  $ar->%[0,1,2] [3] 
array last index   $#a    $#{$ar}    $ar->$#* [3] 

hash itself    %h    %{$hr}    $hr->%* [3] 
hash element    $h{'a'}   ${$hr}{'a'}   $hr->{'a'} 
hash slice     @h{'a','b','c'} @{$hr}{'a','b','c'} $hr->@{'a','b','c'} [3] 
hash key/value slice[2]  %h{'a','b','c'} %{$hr}{'a','b','c'} $hr->%{'a','b','c'} [3] 

code call     func(@args) 
code w/ prototype ignored &func(@args)  &{$cr}(@args)  $cr->(@args) 
code w/ inherited @_  &func   &{$cr}    $cr->&* [3] 

glob itself    *glob   *{$gr}    $gr->** [3] 
glob slot     *glob{ARRAY}  *{$gr}{ARRAY}  $gr->*{ARRAY} [3] 

注:

  1. 周圍的大括號$sr$ar$hr$cr$gr是可選的,當花括號中的內容是簡單地如日曆。

    如果使用它們,那些curlies會形成塊,因此它們實際上可以包含多個語句。

  2. 需要Perl 5.20+。

  3. 需要Perl 5.24+。通過添加use feature qw(postderef);和​​可用於Perl 5.20+。

參見: