map() 返回 LIST 时出现语法错误

2023-11-23

这有效,

print map { $_." x" => $_ } 1..5;
print map { ("$_ x" => $_) } 1..5;
print map { ("$_ x") => $_ } 1..5;

但这会引发语法错误,

print map { "$_ x" => $_ } 1..5;

这是已记录的错误、未记录的错误,还是我不明白为什么它不应该编译?

为什么 Perl 认为这应该是map EXPR, LIST代替map BLOCK LIST


From perlref

因为大括号(大括号)用于包括 BLOCK 在内的其他几个内容,所以您有时可能需要通过在前面放置 + 或 return 来消除语句开头的大括号的歧义,以便 Perl 意识到左大括号不是开始 BLOCK 。使用卷曲的经济和助记价值被认为值得这种偶尔的额外麻烦.

为了让你的意图更清晰并帮助解析器,

  • Say +{...}明确指定哈希引用

    @list_of_hashrefs = map +{ "$_ x" => $_ }, 1..5;
    
  • Say {; ...}明确指定代码块

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

map() 返回 LIST 时出现语法错误 的相关文章

  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl
  • 如何在 Perl 脚本中加密或隐藏密码?

    我正在研究 Perl 脚本 它使用Expect http search cpan org dist Expect通过 telnet 登录到远程计算机 不要问 必须使用 telnet 我还根据需要执行 perforce p4 登录操作 并使用
  • 如何在 Perl 中修改 Windows NTFS 权限?

    我在 Windows Server 2003 上使用 ActiveState Perl 我想在 Windows NTFS 分区上创建一个目录 然后授予 Windows NT 安全组对该文件夹的读取访问权限 这在 Perl 中可能吗 我必须使
  • 将 stdin/stdout 从执行进程重定向到 Perl 中的管道

    我试图让执行子进程中的 STDOUT STDERR 通过 Perl 中的管道返回到父进程 我见过的最接近我想做的事情是 http forums devshed com perl programming 6 exec and redirect
  • perl 和 java 正则表达式功能之间有什么区别?

    perl 和 java 在支持哪些正则表达式术语方面有什么区别 这个问题仅涉及正则表达式 并且特别排除了how可以使用正则表达式 即使用正则表达式的可用函数 方法 以及语言之间的语法差异 例如java要求转义反斜杠等 特别令人感兴趣的是 j
  • perl - 子进程向父进程发送信号

    我编写了以下代码来测试孩子和父母之间的信号传递 理想情况下 当子进程向父进程发出 SIGINT 时 父进程应该在新的迭代中返回并等待用户输入 我在 perl 5 8 中观察到了这一点 但在 perl 5 6 1 我被要求使用 中 父级实际上
  • Perl `join` 生成多行字符串

    我有这个程序来对两个数组进行排序 usr bin perl w movies movies txt open FHD movies die could not open movies n movies
  • Crypt::OpenPGP Symkey 解密失败:无效的密钥 ID

    我遇到问题在哪里地穴 OpenPGP https metacpan org module Crypt 3a 3aOpenPGP无法解密 GPG 编码的消息 看来我是不是第一个 http www perlmonks org node id 9
  • 我可以在 Perl 中访问动态指定类中的静态方法吗?

    是否可以在 Perl 中动态指定一个类并访问该类中的静态方法 这不起作用 但说明了我想做的事情 use Test Class1 my class Test Class1 class static method 我知道我可以这样做 class
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 如何检测FTP文件传输完成?

    我正在编写一个脚本 用于轮询 FTP 站点上的文件并在可用时将它们下载到本地 文件由各个来源方随机存放到 FTP 站点 我需要一种方法能够在下载之前检测 FTP 站点上的文件是否已被源方完全传输 关于如何解决这个问题有什么想法吗 如果您可以
  • 使用perl创建层次结构文件

    我的任务是使用 perl 创建父子层次结构文件 示例输入文件 制表符分隔 记录将以随机顺序排列在文件中 父项 可能出现在 子项 之后 S5 S3 S5 S8 ROOT S1 S1 S7 S2 S5 S3 S4 S1 S2 S4 77 S2
  • Perl 正则表达式匹配模式的多个实例并替换

    我有一个看起来像这样的字符串 abc 1 2 3 something here foo 10 6 34 somethingelse here def 1 2 another 我想将此字符串拆分为一个数组 其中包含 abc 1 2 3 som
  • 如何在 Perl 中找到正则表达式匹配的位置?

    我需要编写一个接收字符串和正则表达式的函数 我需要检查是否有匹配并返回匹配的开始和结束位置 正则表达式已经由qr 该函数还可能收到一个 全局 标志 然后我需要返回所有匹配的 开始 结束 对 我无法更改正则表达式 甚至无法添加 用户可能使用的
  • 修改排序比较器内的字符串

    我有以下代码 在排序比较器中 它在进行比较之前删除前缀字符串 print for sort a s STRING b s STRING foo a cmp foo b a 尽管比较和顺序是正确的 但前缀字符串已从输出中删除 以下保留前缀字符
  • 如何使用 Perl 和正则表达式将 SQL 文档转换为 ColdFusion 脚本?

    我需要将 SQL 语句文档转换为 ColdFusion 文档 我对正则表达式只有一点经验 而且我是 Perl 超级新手 我昨天刚刚自学了它的基础知识 所以我可以完成这项任务 我正在尝试用 Perl 编写的脚本匹配和替换模式 该脚本保存为 B
  • 使用 sed 替换复杂模式

    我想使用 sed 命令替换模式 要删除的图案如下所示 带有一个空格 var 0xaae8 x6A x6F x69 x6E x72 x65 x76 x65 x72 x73 x65 x73 x70 x6C x69 x74 x3E x74 x70
  • 检查程序是否正在运行,如果不在 perl 中则运行它

    我想知道如何检查程序是否正在运行 如果没有则运行该程序 使用 Kill 函数向要检查的进程 ID 发送 0 零 信号 如果进程存在 函数返回true 否则返回false Example check if process 1525 is ru
  • 从具有不同活动 perl 版本的另一个 perl 脚本调用 perl 函数

    我们有两个版本的 Active perl 5 6 和 5 24 我们有必须在 Active perl 5 24 版本 采用 TLS 1 2 版本 上执行的 Web 服务 并且需要从 Active perl 5 6 版本调用 我们使用的是wi

随机推荐

  • MAUI blazor 发生了未处理的错误

    如果程序中有错误 我会收到 发生未处理的错误 通过 Blazor Web 程序集 我可以在浏览器中打开开发人员工具来获取所发生情况的详细信息 这在 Blazor MAUI 中是不可能的 那么如何获取 Blazor MAUI 中的错误详细信息
  • 按下 JFrame 中的按钮后打开 JPanel [重复]

    这个问题在这里已经有答案了 我知道有人问过这个问题 但我未能找到解决方案 我创建了一个JFrame对于登录 我想在按下 Cont Nou 按钮后为新帐户打开一个带有 jpanel 的新窗口 但不知道如何使初始框架消失并显示带有 jpanel
  • 需要在 ExtendScript 中对对象进行 JSON 字符串化

    我正在使用 ExtendScript 处理 Indesign 文档链接的元数据信息 我想使用将对象转换为字符串JSON stringify但是当我使用它时 我收到错误消息 can t execute script in target eng
  • 为什么“if constexpr”的错误分支会被编译?

    为什么这段代码在编译时会出错 我的知识 还有this of if constexpr 说else块不应该被编译 if constexpr true int a 10 else int b 10 错误是 error expected or b
  • .Net Core 上的 OData 未在 $select 上返回正确的结果

    我已将 OData 添加到我的 WebAPI 项目中 版本 核心3 1 OData 7 3 0 测试版 以便与 Core 3 x 配合使用 EF 核心 3 1 0 这是我的startup cs public class Startup pu
  • Django:IE 无法加载本地主机或加载速度非常慢

    我刚刚开始学习 Django 在我的计算机上构建一个项目 运行 Windows 7 64 位 Python 2 7 Django 1 3 基本上 无论我写什么 它都会立即加载到 Chrome 和 Firefox 中 但对于 IE 版本 9
  • 读取 Cobol 生成的文件

    我目前正在编写一个 C 应用程序 该应用程序位于两个现有应用程序之间 我对第二个应用程序的了解是它处理第一个应用程序生成的文件 第一个应用程序是用 Cobol 编写的 脚步 1 Cobol 应用程序 写入一些文件并复制到目录中 2 第二个应
  • 在 vim 中将 ex 命令重定向到 STDOUT

    我正在尝试编写一个命令将 vim 的突出显示信息转储到 STDOUT 我可以成功写入这样的文件 vim redir gt outfile hi redir END q 在这之后 outfile包含正是我想要的 但我宁愿输出到 STDOUT
  • 使用 wget 和 SFTP 获取文件 [关闭]

    Closed 这个问题是无关 目前不接受答案 大家好 我每天晚上在 Linux 服务器上运行一个脚本 该脚本打算使用 wget 和 ftp 协议从另一个服务器获取文件 这些文件位于无法通过 HTTP 访问的文件夹下 这是使用的命令行 wge
  • std::list<>::sort 稳定吗?

    我找不到这个问题的任何明确答案 我想大多数实现都使用稳定的合并排序 但是稳定性是要求还是副作用 C 标准 ISO IEC 14882 2003 说 23 2 2 4 31 Notes 稳定 保留等效元素的相对顺序 如果抛出异常 列表中元素的
  • 在 if 语句中,cin 如何计算为 true?

    我以为 if true execute this statement 那么如何if std cin gt gt X 当没有什么 真实 的时候 执行为 true 吗 我可以理解如果是的话if x lt y or if y operator x
  • 在 ASP.NET Core 中显示 SelectList 中的数据

    我尝试了几种不同的方法 我不知道为什么 但我的 SelectList DropDown 是空的 它显示没有数据 我不确定我哪里出错了 我有一个 ASP NET Core 应用程序 实体框架核心 数据库第一 我正在使用存储库模式 这是我的模型
  • Linq、OrderByDescending、First 和邪恶的 DefaultIfEmpty

    希望这是我不理解基本知识的一个简单问题 下面是我正在开发的应用程序中的两个 Linq 语句 EDMXModel Classes Period p1 entities Periods DefaultIfEmpty null OrderByDe
  • 覆盖 Rails 3 中的默认脚手架生成器

    我已经为 Rails 3 中的控制器创建了一个生成器 现在我想在使用脚手架生成器时使用这个生成器作为默认生成器 那可能吗 您的自定义控制器文件的正确位置是lib templates rails scaffold controller con
  • 如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象? [复制]

    这个问题在这里已经有答案了 我得到一个格式类似于 2009 05 28T16 15 00 的日期时间字符串 我相信这是 ISO 8601 一种黑客选项似乎是使用解析字符串time strptime并将元组的前六个元素传递到日期时间构造函数中
  • 如何在多个 CruiseControl.NET 版本之间共享标签值?

    我在 CruiseControl NET 中设置了两个项目 CI 构建和夜间构建 它们都执行相同的 NAnt 脚本 但参数不同 CruiseControl NET 标签 当前由默认标签器 作为版本的构建部分嵌入到 AssemblyInfo
  • 元素的流体网格居中,无需在父级上设置硬宽度

    我想将元素的 网格 居中 当调整大小时 该元素会调整到自身居中 像这样
  • AngularJS 修剪模型中的前导零,而视图/输入值仍然保持不变?

    对于类型为数字的输入元素 当输入的数字具有前导零 例如 0000123456 时 模型将更新为 123456 而视图 输入仍保持相同的 0000123456 但是 如果我从数字切换到文本 一切都会按预期进行 我想要一个数字 因为它会显示移动
  • wix - 如何删除非空文件夹

    我已阅读该网站上存在此类问题的所有主题 但找不到我需要的内容 我有一个程序的两个版本 旧版本和新版本 在旧版本中我有文件夹 f1 在新版本中我没有这个文件夹f1 当新程序的安装程序检测到旧版本时 它会删除该旧版本 但不会删除文件夹 f1 如
  • map() 返回 LIST 时出现语法错误

    这有效 print map x gt 1 5 print map x gt 1 5 print map x gt 1 5 但这会引发语法错误 print map x gt 1 5 这是已记录的错误 未记录的错误 还是我不明白为什么它不应该编