2017-09-30 4 views

Répondre

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] 

Notes:

  1. Les accolades autour $sr, $ar, $hr, $cr et $gr sont facultatifs lorsque le contenu des Curlies est simplement comme calar.

    S'ils sont utilisés, ces curlies forment des blocs, de sorte qu'ils peuvent effectivement contenir plusieurs instructions.

  2. Nécessite Perl 5,20+.

  3. Nécessite Perl 5,24+. Disponible en Perl 5.20+ en ajoutant à la fois use feature qw(postderef); et no warnings qw(experimental::postderef);.

Voir aussi: