在函数调用的同一行获取哈希键/值

2023-12-07

这是重现问题的代码:

sub hello { return (h => 1, n => 1); }
print join ", ", values hello();

我收到错误:

arg 1 到值的类型必须是散列 (不是子程序入口)在 - 第 4 行, 靠近 ”);”执行 - 由于中止 到编译错误。

我知道我可以将调用和打印分成两行:

sub hello { return (h => 1, n => 1); }
my %hash = hello();
print join ", ", values %hash;

但我不想那样做。有没有某种方法可以在一行中完成此操作,这样我就不必一直创建临时变量?


您可以使用哈希引用:

sub hello { return {h => 1, n => 1}; }
print join ", ", values %{hello()};

但除此之外,没有。 Perl 可以在标量或列表上下文中解释子例程的返回值,但没有在散列上下文中返回值的概念。


Update: 这也有效

sub hello { return (h => 1, n => 1); }
print join ", ", values %{{hello()}};

内在{}将输出转换为hello()从列表到哈希引用。 外层%{}取消引用哈希。

(Does %{{}}}算作一个伪运算符?)

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

在函数调用的同一行获取哈希键/值 的相关文章

  • 在 Perl 中实现 CLI 工具的最佳实践是什么?

    我正在使用 Perl 实现 CLI 工具 我们可以遵循哪些最佳实践 作为前言 我花了 3 年时间为一家大型金融公司设计并实现了一个相当复杂的 Perl 命令行工具集 以下想法基本上是我们团队设计指南的一部分 用户界面 命令行选项 允许尽可能
  • 如何使用 Time::Piece strptime 解析微秒?

    我有一个时间戳 看起来像25 OCT 10 04 11 00 000000 AM 我正在尝试将其转换为时间格式 Time Piece gt strptime 25 OCT 10 04 11 00 000000 AM d b y I M S
  • 在 Perl 中将整个文件读入哈希值

    我在 Perl 中将文件读入哈希时遇到一些问题 Chr1 supercontig 000000000 1 500 PILOT21 588 1 3 14602 59349 1 Chr1 supercontig 000000001 5 100
  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 缓存施瓦茨变换

    我正在学习 中级 Perl 它非常酷 我刚刚读完 施瓦茨变换 部分 在理解它之后 我开始想知道为什么变换不使用缓存 在具有多个重复值的列表中 转换会重新计算每个值的值 因此我想为什么不使用哈希来缓存结果 这是一些代码 a place to
  • 如何在 Perl 中运行匿名函数?

    sub print 1 sub print 1 我尝试了各种方法 都是错误的 sub 将为您提供指向该函数的指针 因此您必须通过引用调用 sub print Hello world n gt 另一种简单的方法 如所指出的布拉戈维斯特 布尤克
  • 哪些字符可以用作正则表达式分隔符?

    哪些字符可以用作 Perl 正则表达式的分隔符 m re m re and m re 一切似乎都有效 但我想知道所有可能性 From perlop http perldoc perl org perlop html 通过 m 您可以使用任意
  • perlbrew 可以在 Windows 上运行吗?

    使用 ActiveState 5 8 8Windows XP http en wikipedia org wiki Windows XP 我想安装更新的 Perl 进行测试 迁移 有一天 我们将不再以为自己只能使用一台计算机 当我想测试这类
  • Perl 中的 Fork 无法在从文件读取的 while 循环内工作

    我正在运行一个 while 循环来读取文件中的每一行 然后使用该行的数据将进程分叉给子进程 N 行之后 我想等待子进程结束并继续接下来的 N 行 等等 它看起来像这样 while w
  • Perl 脚本(或任何东西)来合计 CSV 列

    我写了 在其他人的很多帮助下 awk command https stackoverflow com questions 4159224 excel and awk disagree about csv totals 4159404 415
  • 使用 Perl 循环 JSON [重复]

    这个问题在这里已经有答案了 我是 Perl 的新手 想要循环这个 JSON 数据并将其打印到屏幕上 我怎样才能做到这一点 arr Year 2012 Quarter Q3 DataType Other 3 Environment STEVE
  • 合并 Perl Hashref 和 unique

    我有两个 Perl 哈希值 内容如下 First VAR1 name1 gt adam bob name2 gt Miller Schumacher Second VAR1 name1 gt tina jason jeff
  • 这可以一行完成吗?

    我像这样提取MAC地址 my tmp split domain 123 123 123 123 at 00 11 22 33 44 55 ether on eth0 my vip tmp 3 但不使用临时变量可以完成吗 是的 它可以 my
  • 使用perl,在每行都有相同单词的情况下如何选择最后两行?

    Bini 21 89753 20 47853 20 27835 18 34952 16 23454 Bini 16 89753 14 47853 13 27835 12 34952 11 23454 Bini 10 09014 我的文件有一
  • 如何比较两个文件中的多列并在找​​到匹配时从另一列检索相应的值

    我有两个文件 File1 txt 和 File2 txt 我需要将 File1 中的三列 1 2 和 3 分别与 File2 的 4 5 和 6 进行比较 如果找到匹配项 我想从 File2 的第 2 列中检索相应的值并将其粘贴到输出中 T
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错
  • 如何确保我的代码永远不会直接退出?

    eval require file subsequent code goes here If file包含一个exit语句 后面的代码就没有机会运行 如何解决以便后续代码始终有机会运行eval已经完成了 中止是不可能的exit call f
  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • Bugzilla 中分离客户端的基本权限

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

    不想对条目进行排序 使用它也不会保留顺序 foreach my val keys hash 默认情况下 Perl 5 中的哈希值是无序的 您可以使用tie http perldoc perl org functions tie html a

随机推荐

  • 指针递增和赋值

    C 中以下两行 int a int calloc automata size sizeof int int b a 我发现a和b共享同一个地址 如果我们有的话 情况就不是这样了 int a int calloc automata size
  • Spring MVC 与休眠验证不起作用

    我在使用 Spring 进行休眠验证时遇到一些问题 我按照在线教程中的说明做了所有操作 但它不起作用 我只是转到下一页 没有验证错误 import javax validation constraints NotNull import ja
  • Lotus Notes 从文档中获取附件名称

    我正在为 Notes 8 5 2 开发一个 Lotus Notes 插件 用于将电子邮件中的附件保存到硬盘 但是 当我尝试从 Notes 文档中读取附件名称时 我总是得到包含第一个附件名称 一些垃圾数据的相同字符串 protected Ve
  • 如何从 MySQL 数据库中回显换行符?

    我创建了一个简单的墙贴功能 就像在 Facebook 上一样 用户撰写帖子 帖子被提交到数据库 然后回显到网站上 这一切都有效 唯一的问题是 当文本回显到网站上时 换行符却没有回显 所以 我输入 嘿 这是一个帖子 这是一个新段落 它显示为
  • iOS 中的 NSData 和通过 POST 上传图像

    我一直在梳理很多关于在 iOS 中通过 POST 上传图像的帖子 尽管有关此主题的信息很丰富 但我无法正确上传从 iPhone 模拟器照片库中获取的 JPEG 数据 数据一旦到达服务器 就只是一长串十六进制的数据 NSData 不应该只是一
  • 条件 (C) 中可能的分配

    我必须找到数字 a 是两位数的奇数 如果发生错误 include
  • React-Native: ''请从构建脚本中删除 `jcenter()` Maven 存储库的使用...''

    I m build my project after added react native image crop picker But i meet this error Could you please to show me the wa
  • 使用 ControlTemplate 时 ListView 忽略 DataTemplates

    我尝试实现一个多列ListView 一切都工作得很好 直到我尝试设置列表视图项的鼠标悬停和选择外观的样式 因此 我创建了一个 ControlTemplate 请参阅下面的 XAML 当我使用 ControlTemplate 时 列的 Dat
  • -Djava.library.path=... 相当于 System.setProperty("java.library.path", ...)

    我加载一个外部库 该库位于 lib 这两种设置 java library path 的解决方案是否等效 执行jar时在控制台设置路径 java Djava library path lib jar myApplication jar 在加载
  • 动态与对象相同

    在 CLR via C 一书中提到 FCL类型对应的dynamic关键字是System Object 请澄清这一点 It s not从 C 的角度来看 这完全是一样的 但是在编译的代码中 声明为类型的变量dynamic通常 可能总是 与 C
  • 没有互联网连接的同步适配器

    我有一个工作正常的同步适配器 它不需要互联网连接 因为它需要将地址簿与另一个本地存储 我的应用程序 同步 当 Wifi 关闭并且设备没有任何互联网连接时 Android 会在 帐户和同步 设置活动中禁用同步 即使连接关闭 有没有办法让同步适
  • 从列表中删除重复项和原始项

    给定一个字符串列表 我想删除重复项和原始单词 例如 lst a b c c c d e e 输出应该删除重复项 所以像这样 a b d 我不需要保留订单 Use a collections Counter object 然后仅保留那些计数为
  • 关闭交互式 python 会话时结束非守护线程

    请考虑下面的代码 usr bin env python3 import threading import time class MyThread threading Thread def init self super init self
  • 在 Swift 中将 UIView 转换为 .png

    如何将 UIView 转换为图像 我找到了这个将 uiview 转换为 png 图像但我对 Objective C 不太熟悉 我尝试将其翻译成 Swift 但进展不太顺利 有什么帮助吗 UIGraphicsBeginImageContext
  • 如何将自定义数据加载到 keras Cyclegan 示例的 tfds 中?

    按照中的示例https keras io examples generative cyclegan 已加载预先存在的数据集以供实施 我正在尝试添加我的数据集 import tensorflow datasets as tfds data t
  • PyQt6:如何在 QImageReader 中设置分配限制?

    我正在将应用程序从 PyQt5 更新到 PyQt6 该应用程序使用非常大的图像文件 我已经更新了代码以使用 PyQt6 但是 当我运行 Python 脚本时 我现在收到错误 QImageIOHandler 拒绝图像 因为它超出了当前分配 限
  • 如何在laravel中使用createMany方法插入多条记录

    我想使用 createMany 创建多记录 如何在没有数据复制的情况下将数组插入到此方法 public function update Request request Question question options request gt
  • 将嵌入引号的 csv 文件读取到 R 中

    我必须使用如下所示的 csv 文件 IDEA ID IDEA TITLE VOTE VALUE 56144 Net Present Value PLUS NPV 1 56144 Net Present Value PLUS NPV 1 如果
  • cakephp 表单验证

    有谁知道 cakePHP 中的表单是否有 VALIDATE 函数并查看错误数组 我检查了文档 但我发现的唯一东西是 SAVE 功能 我只需要知道我发送的数据是否有效并手动检查错误 Try this this gt ModelName gt
  • 在函数调用的同一行获取哈希键/值

    这是重现问题的代码 sub hello return h gt 1 n gt 1 print join values hello 我收到错误 arg 1 到值的类型必须是散列 不是子程序入口 在 第 4 行 靠近 执行 由于中止 到编译错误