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

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(使用前将#替换为@)

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

  • 向用户提示多个问题(是/否和文件名输入)

    我想问用户多个问题 我有两种类型的问题 是 否或文件名输入 我不知道如何将这一切放入一个好的if结构 我不确定是否也应该使用 else 语句 有人可以帮我们解决这个问题吗 这是我到目前为止所拥有的 print Do you want to
  • 你能挽救我的负面回顾示例来传达数字吗?

    在 高级正则表达式 一章中掌握 Perl http oreilly com catalog 9780596527242 我有一个损坏的示例 我无法找到一个很好的修复方法 这个例子可能为了自己的利益而试图变得太聪明 但也许有人可以帮我解决它
  • 如何使用 Perl CGI 脚本提供图像?

    我的 Google fu 让我失望了 如何使用 Perl 提供已生成的图像 Example img src getimage pl getimage pl 里有什么 干得好 usr bin perl w my file inner nav
  • 无法从日志文件中提取特定信息

    我这里有日志文件我想提取以下信息 想要提取十六进制值 如果该行有第二个括号 0 9 想要提取十进制值 首先转换为十六进制 然后提取 9 gt 0x09 想要提取负值 25 先转换为十六进制然后提取 例如 25 gt FFE7 gt 想要提取
  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你
  • 快速 Perl signint 处理程序

    收到 Ctrl C 时处理程序清理的最方便 最清晰的方法是什么 例如 当我的套接字服务器以这种方式被终止时 TCP 套接字永远不会关闭 我想要一个很好的衬里 我可以将其放在程序的顶部来设置 sigint 处理程序 或类似 atexit 的东
  • 为什么我的 Apache2::Log 输出用 \n 替换换行符?

    我在 apache2 mod perl 下设置了多个虚拟主机 我用的是ErrorLog指令为每个虚拟主机获取单独的错误日志 仅当我使用 Apache2 Log 时 这才按预期工作 警告 只会记录到常规错误日志中 这样就可以了 最后 但还存在
  • Perl regex:如何知道匹配数

    我循环遍历一系列正则表达式并将其与文件中的行进行匹配 如下所示 for my regex regexs ref LINE for rawfile regex do do something here next LINE 有没有办法让我知道我
  • 如何在 Perl 脚本中加密或隐藏密码?

    我正在研究 Perl 脚本 它使用Expect http search cpan org dist Expect通过 telnet 登录到远程计算机 不要问 必须使用 telnet 我还根据需要执行 perforce p4 登录操作 并使用
  • 如何忽略 perl 中的“证书验证失败”错误?

    我想访问一个无法验证证书的网站 我正在使用 WWW Mechanize 获取请求 那么如何忽略这一点并继续连接到该网站呢 use IO Socket SSL qw use WWW Mechanize qw my mech WWW Mecha
  • 使用 Visual Studio Code 调试 Perl

    我今天刚开始使用 Perl 并安装了活动Perl https en wikipedia org wiki ActivePerl5 24 1 一切都很顺利 我能够创建我的测试程序testPerl pl与简单的print命令并运行它consol
  • 打包/解包 - 小端 - 64 位 - 问题

    usr bin env perl use warnings use 5 012 my var 1 lt lt 31 say unpack B pack N var 10000000000000000000000000000000 我怎样才能
  • 为什么 Perl 的 LWP 给我的编码与原始网站不同?

    可以说我有这个代码 use strict use LWP qw get my content get http www msn co il print STDERR content 错误日志显示类似 xd7 x9c xd7 x94 xd7
  • Crypt::OpenPGP Symkey 解密失败:无效的密钥 ID

    我遇到问题在哪里地穴 OpenPGP https metacpan org module Crypt 3a 3aOpenPGP无法解密 GPG 编码的消息 看来我是不是第一个 http www perlmonks org node id 9
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 从函数返回哈希值的最佳 Perl 实践是什么?

    我正在考虑将哈希引用传递给函数或从函数返回数据的最佳实践 一方面 仅将输入值传递给函数并仅返回输出变量似乎很直观 然而 在 Perl 中传递哈希值只能通过引用来完成 因此有点混乱 而且似乎更有可能犯错误 另一种方法是在输入变量中传递引用 但
  • 在 perl 中 \*STDIN 与 STDIN 相同吗?

    我是作者Python化者 https github com snoopyjc pythonizer我正在尝试将 CGI pm 的代码从标准 perl 库翻译为 Python 我在中遇到了这段代码从客户端读取 https metacpan o
  • 使用perl创建层次结构文件

    我的任务是使用 perl 创建父子层次结构文件 示例输入文件 制表符分隔 记录将以随机顺序排列在文件中 父项 可能出现在 子项 之后 S5 S3 S5 S8 ROOT S1 S1 S7 S2 S5 S3 S4 S1 S2 S4 77 S2
  • Perl:模板工具包的替代品

    我使用模板工具包来扩展现有的领域特定语言 verilog 已经超过 3 年了 虽然总的来说我对此感到满意 但主要的刺激性是 当出现语法 undef 错误时 错误消息不包含用于调试错误的正确行号信息 例如我会收到一条消息 指示 0 未定义 因
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处

随机推荐

  • 指针递增和赋值

    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 行 靠近 执行 由于中止 到编译错误