gpt4 book ai didi

Perl 解引用语法

转载 作者:行者123 更新时间:2023-12-03 22:16:21 27 4
gpt4 key购买 nike

在 Perl 中取消引用引用的语法是什么?

最佳答案

只要您可以使用变量的名称,您就可以使用一个评估为引用的 block 来代替。例如,以下是指定数组的有效语法:

@NAME    # If you have the name      e.g. @array
@BLOCK # If you have a reference e.g. @{ $ref }
这是下表中说明的“circumfix 语法”。
另一种语法通俗地称为“箭头符号”更容易阅读,但在某些情况下需要 Perl 5.20+。这是下表中说明的“后缀语法”。
直接使用引用 使用引用
Circumfix 语法[1] 后缀语法

标量本身 $s ${$sr} $sr->$* [3]

数组本身 @a @{$ar} $ar->@* [3]
数组元素 $a[0] ${$ar}[0] $ar->[0]
数组切片 @a[0,1,2] @{$ar}[0,1,2] $ar->@[0,1,2] [3]
数组索引/值 slice[2] %a[0,1,2] %{$ar}[0,1,2] $ar->%[0,1,2] [3]
数组最后索引 $#a $#{$ar} $ar->$#* [3]

散列本身 %h %{$hr} $hr->%* [3]
哈希元素 $h{'a'} ${$hr}{'a'} $hr->{'a'}
哈希切片 @h{'a','b','c'} @{$hr}{'a','b','c'} $hr->@{'a','b',' c'} [3]
哈希键/值切片[2] %h{'a','b','c'} %{$hr}{'a','b','c'} $hr->%{'a' ,'b','c'} [3]

代码调用函数(@args)
忽略原型(prototype)的代码 &func(@args) &{$cr}(@args) $cr->(@args)
代码 w/继承 @_ &func &{$cr} $cr->&* [3]

glob 本身 *glob *{$gr} $gr->** [3]
全局插槽 *glob{ARRAY} *{$gr}{ARRAY} $gr->*{ARRAY} [3]

笔记:
  • $sr 周围的大括号, $ar , $hr , $cr$gr当 curlies 的内容只是一个标量变量时是可选的。
    如果使用它们,这些花括号会形成 block ,因此它们实际上可以包含多个语句。
  • 需要 Perl 5.20+。
  • 需要 Perl 5.24+。通过添加 use feature qw( postderef ); 在 Perl 5.20+ 中可用和 no warnings qw( experimental::postderef ); ,或添加 use experimental qw( postderef ); .这是安全的,因为当时的实验特性被 Perl 接受而无需更改。

  • 也可以看看:
  • References Quick Reference
  • perlref
  • perlreftut
  • perldsc
  • perllol
  • 关于Perl 解引用语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46507722/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com