2017-09-30 65 views

cevap

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] 

Notlar: yaklaşık

  1. kıvrımlı parantezler $sr curlies içeriği olduğunda, $ar, $hr, $cr ve $gr opsiyoneldir basitçe calar.

    Eğer kullanılırlarsa, bu kıvrımlar bloklar oluştururlar, bu yüzden aslında çoklu ifadeler içerebilirler.

  2. Perl 5.20+ gerektirir.

  3. Perl 5.24+ gerektirir. Hem use feature qw(postderef); hem de no warnings qw(experimental::postderef); ekleyerek Perl 5.20+ sürümünde kullanılabilir.

Ayrıca bkz: