变量周围的大括号

2024-01-08

我正在尝试理解这段代码,我什至不知道它的语法是否正确(我猜是练习的一部分!)

%{$records}

大括号表示什么?我见过同样的情况,但有一个@使用运算符代替$如果这有影响的话。

多谢你们!


The perlref 文档的“使用引用”部分 http://perldoc.perl.org/perlref.html#Using-References解释说。

2.无论您将标识符(或标识符链)作为变量或子例程名称的一部分,都可以用返回正确类型引用的 BLOCK 替换标识符。换句话说,前面的例子可以这样写:

   $bar = ${$scalarref};
   push(@{$arrayref}, $filename);
   ${$arrayref}[0] = "January";
   ${$hashref}{"KEY"} = "VALUE";
   &{$coderef}(1,2,3);
   $globref->print("output\n"); # iff IO::Handle is loaded

就你而言,$records必须是对哈希的引用(因为最外面的%), {$records}是一个返回引用的块,并且%{$records}给出原始哈希值。

大括号包围着善意堵塞。事实上,你可以将上面的代码替换为

%{ if ($records) { $records } else { $default_records } }

但正如文档前面指出的那样,即使您的问题的较短版本也可以简化。

1.无论您将标识符(或标识符链)作为变量或子例程名称的一部分,都可以将标识符替换为包含正确类型引用的简单标量变量:

   $bar = $$scalarref;
   push(@$arrayref, $filename);
   $$arrayref[0] = "January";
   $$hashref{"KEY"} = "VALUE";
   &$coderef(1,2,3);
   print $globref "output\n";

Because $records是一个简单的标量,%$records是底层哈希。

如果相反$records是对数组的引用,取消引用它的语法是@$records or @{$records}.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变量周围的大括号 的相关文章

  • perl:正确的“内容类型”格式以返回“图像数据 uri”

    我有一个模板angularjs期待着image data uri由通过调用的服务器调用返回src的属性img模板的元素 img width 200px height 200px src http localhost 3000 returni
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • “get”在 Perl 中不起作用

    我是 Perl 新手 在过去的几天里 我制作了一些简单的脚本 通过 get 将网站的源代码保存到我的计算机上 他们做了他们应该做的事情 但不会获得论坛网站的内容 非论坛网站工作得很好 知道发生了什么事吗 这是问题块 my url http
  • 如何将 cpanminus 与本地 CPAN::Mini 一起使用?

    我已经创建了自己的 CPAN 本地副本minicpan http search cpan org rjbs CPAN Mini 1 111007 bin minicpan并设法重新配置 cpan 来使用它 太棒了 但是我将如何使用它cpan
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • 在 Objective-C 中使用 perl?

    CPAN 有大量非常有用的库 除了将它们移植到 Objective C 之外 是否还有在 iOS 上将 Perl 代码嵌入到 Objective C 中的方法 我对使用特别感兴趣电子表格 阅读 http kobesearch cpan or
  • 从 shell 脚本调用 Perl,如何将返回值从 Perl 传递到 shell?

    我成功地从 shell 脚本调用 Perl 脚本 现在我想将 Perl 脚本的返回值传递给 shell 脚本 指示它是否成功 我该怎么做呢 只需使用适当的退出值退出 Perl 脚本即可 exit exit value exit 0 if p
  • 更新命令行输出

    我的程序 碰巧是用 Perl 编写的 尽管我不认为这个问题是 Perl 特定的 在程序中的某一点输出状态消息 Progress x yy where x and yy是一个数字 例如 Progress 4 38 我想在打印新的状态消息时 覆
  • 结构体指针运算符猜想(理论)

    结构体指针的使用非常频繁 因此有一个特殊的运算符 gt 下面的表达式是等价的 x y x gt y 将此运算符简单地视为如下定义的预处理器宏是否公平 define x gt x 为什么或者为什么不 或者它从一开始就被编码为运算符 这有何不同
  • Perl6:我怎样才能使所有警告都是致命的?

    我怎样才能使 Perl6 中的所有警告都是致命的 以便脚本在屏幕上出现警告时立即终止 CONTROL when CX Warn note exit 1 更频繁地死亡 该脚本终止于CONTROL when CX Warn note exit
  • 使用 Perl 循环 JSON [重复]

    这个问题在这里已经有答案了 我是 Perl 的新手 想要循环这个 JSON 数据并将其打印到屏幕上 我怎样才能做到这一点 arr Year 2012 Quarter Q3 DataType Other 3 Environment STEVE
  • Ruby 试图掌握一种新的表示法。 (inject(:) 与 select(and:even?);为什么有 &?)

    所以 我刚刚了解到 而不是写这样的东西 1 2 3 4 5 inject x y x y gt 15 我可以写 1 2 3 4 5 inject gt 15 我还了解到 而不是写 1 2 3 4 5 select x x even gt 2
  • SyntaxError:创建类实例时语法无效[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在 Python shell 3 3 2 中运行这段代码 但它给了我SyntaxError invalid syntax cla
  • 我不喜欢这个……这是欺骗语言吗?

    我已经见过几次类似下面的东西了 我讨厌它 这基本上是在 欺骗 语言吗 或者 您是否认为这是 可以 因为 IsNullOrEmpty 始终首先被评估 我们可能会争论一个字符串从函数中出来时是否应该为 NULL 但这并不是真正的问题 strin
  • SQL 条件行插入

    如果满足条件是否可以插入新行 例如 我有这个表 没有主键也没有唯一性 image id tag id 39 8 8 39 5 11 如果 image id 和 tag id 的组合不存在 我想插入一行 例如 INSERT WHERE ima
  • 如何比较两个文件中的多列并在找​​到匹配时从另一列检索相应的值

    我有两个文件 File1 txt 和 File2 txt 我需要将 File1 中的三列 1 2 和 3 分别与 File2 的 4 5 和 6 进行比较 如果找到匹配项 我想从 File2 的第 2 列中检索相应的值并将其粘贴到输出中 T
  • 构造函数参数列表后面的try是什么意思?

    我在一个文件中看到了特殊的语法所以问题 https stackoverflow com questions 11574995 its so weird an exception were caught two times不久以前 class
  • 使用 SIGINT 默认处理程序时从 system() 返回值

    我遇到了一些奇怪的返回值system 当子进程从终端接收到 SIGINT 时 解释一下 从 Perl 脚本parent pl I used system 运行另一个 Perl 脚本作为子进程 但我还需要通过 shell 运行子进程 所以我使
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是

随机推荐

  • Grails 3.0.9:Spock 集成测试的 @Rollback 注释不起作用

    我目前正在为我们的项目进行一些集成 或功能性 我不是真正的 QA 而是后端开发人员 所以我可能会草率地使用术语 REST 测试 我们正在使用 Grails 3 0 9 Spock Framework 1 0 Groovy 2 4 和 Pos
  • 带有模式android的EditText输入

    我有一个 EditText 我必须接受字母数字用户输入的特定于模式和连字符的输入 会自动插入 XXX XXX XXXX 如何做到这一点 安卓有什么模式工具吗 你可以通过以下方式实现图案文本观察者 https github com zsave
  • 读取csv文件并将df写入excel并使用文本换行

    我正在尝试获得以下输出 但除标题外 所有行和列均采用文本换行 import pandas as pd import pandas io formats style import os from pandas import ExcelWrit
  • 如何在 2D 和 3D 投影之间切换

    我有一个 matplotlib 图 我希望能够在 2D 和 3D 投影之间切换 我可以从 2D 转到 3D 但我似乎不知道如何转到另一条路 例子 import numpy as np from mpl toolkits mplot3d im
  • Eclipse - 更改自动完成建议的顺序

    我看到以前有人问过这个问题 但我似乎找不到我想要的 目前 在 窗口 gt 首选项 gt Java gt 编辑器 gt 内容辅助 中 我的排序建议设置为 按相关性 然而 他们似乎仍然按字母顺序排序 例如 每当我有一个HashMap我开始打字m
  • 如何将数组元素扩展为函数的单独参数

    我有一组具有动态值的颜色 这取决于数据库 现在 函数中需要这些值 该函数仅采用像此函数那样的值 para1 para2 para3 para4 其中 param1 到 param4 是数组中的颜色值 问题是我如何以上述格式将这些值解析为该函
  • 无法使用 BigQuery Python API 设置目标表

    我最近在使用 Python API 时收到以下 BigQuery 错误 google api core exceptions BadRequest 400 无法为脚本设置co nfiguration query destinationTab
  • Text[] 数组列的表索引

    我有一个 PostgreSQL 数据库表text 数组 在其上定义的列 我使用这些列以这种方式搜索数据库中的特定记录 select obj from business where street ANY address line 1 and
  • ExtJs。设置行编辑单元格值

    我有带有 RowEditing 插件的网格 编辑器有 2 列 一列带有组合框 另一列带有禁用的文本字段 我需要在更改组合框值后更改文本字段值 我有组合框监听器 listeners select function combo records
  • 在 AWS CDK 中组织安全组规则的最佳方式

    对于我的示例 我有一个 EKS 集群 RDS 数据库和一个 VPN 客户端端点 每个端点都有自己的安全组 我希望在这些安全组之间显式定义出口 入口规则 我在RDS堆栈中定义数据库安全组 导入EKS VPNaws ec2 SecurityGr
  • SQL Server:根据参数将存储过程结果插入表中

    我有一个存储过程Test Sp它以这种方式返回数据 Id Name Age Address State Country 1 ManiS 25 aaaa bbb ccc 该存储过程返回 6 列数据 但我只想将前 2 列插入临时表中 我的临时表
  • Bootstrap 3 DatePicker - 如何在不重置选择器配置的情况下重置所选日期?

    我正在尝试重置单击按钮时选定的日期 但到目前为止我只能清除input元素 选择器上没有实际日期 下面的代码重置了所有内容 包括配置和日期 所以它显然不是我需要的 datepicker datepicker update resets eve
  • 如何从曲线拟合中提取残差

    我在 Matlab R2016a 中使用曲线拟合来找到两个数组之间的最佳拟合 一个数组表示给定纬度和经度处的某个值 另一个数组表示收集该值的日期 在使用曲线拟合工具时 我能够找到一条最佳拟合线并绘制残差 我只关心残差 但是 当我将残差导出到
  • PayPal IPN 使用 PHP 生成 HTTP 302 错误

    我有一个可以运行的 IPN 脚本 并且已经工作了一段时间 最近我开始得到一个HTTP 1 1 302 Moved Temporarily作为回应 无法确定原因 以下是与发布到 PayPal 并获取响应相关的代码 sd fsockopen s
  • 使用 SQL 查询的逗号分隔值

    我的 SQL 表如下 City Code Post Code Post Code Description 100 A1 ABC 100 C8 XYZ 100 Z3 MNO 200 D4 LMN 300 E3 IJK 300 B9 RST 它
  • 在C++中,主函数是程序的入口点,我如何将其更改为其他函数?

    有人问我一个面试问题 将 C 或 C 程序的入口点从main 任何其他功能 这怎么可能 在标准 C 中 我相信 C 也是如此 您不能 至少对于托管环境不能 但见下文 该标准规定 C 代码的起点是main 标准 c99 没有留下太多争论的余地
  • 在sql查询中传递node.js参数

    我有一些从客户端接收的日期字段 基本上 我想在我的 SQL 数据库中搜索这个日期 我应该如何在查询中传递年 月和日期 我只想用从客户端收到的新日期替换该日期 如何使用 mssql 驱动程序实现此目的 https www npmjs com
  • 在 grails/hibernate 中使用 uuid 或 guid 作为 id

    我需要将 GUID UUID 作为行的 id 列 这是为了能够在线和离线创建条目 当然合并时不会在PK上产生这些冲突 我知道我可以减轻这个问题 但我想保持简单 并且有遗留应用程序已经使用 uuid guid 来定义关系 稍后还需要双向同步数
  • Oracle JDK 和 OpenJDK 之间的区别

    注意 这个问题来自 2014 年 从 Java 11 OpenJDK 和 Oracle 开始 JDK 正在趋同 Oracle 和 OpenJDK 之间有什么重要区别吗 例如 垃圾收集和其他 JVM 参数是否相同 两者之间的 GC 工作方式是
  • 变量周围的大括号

    我正在尝试理解这段代码 我什至不知道它的语法是否正确 我猜是练习的一部分 records 大括号表示什么 我见过同样的情况 但有一个 使用运算符代替 如果这有影响的话 多谢你们 The perlref 文档的 使用引用 部分 http pe