如何在 Perl6 中查看散列的内容(以类似于 Perl 5 模块 Data::Dump 或 Data::Show 的方式)?

2024-01-01

在 Perl 5 中,如果我想查看哈希的内容,我可以使用Data::Show https://metacpan.org/pod/Data::Show, Data::Dump https://metacpan.org/pod/Data::Dump, or Data::Dumper https://metacpan.org/pod/Data::Dumper.

例如:

use Data::Show;

my %title_for = (
    'Book 1' => {
        'Chapter 1' => 'Introduction',
        'Chapter 2' => 'Conclusion',
    },
    'Book 2' => {
        'Chapter 1' => 'Intro',
        'Chapter 2' => 'Interesting stuff',
        'Chapter 3' => 'Final words',
   }
);

show(%title_for);

哪个输出:

======(  %title_for  )======================[ 'temp.pl', line 15 ]======

    {
      "Book 1" => { "Chapter 1" => "Introduction", "Chapter 2" => "Conclusion" },
      "Book 2" => {
                    "Chapter 1" => "Intro",
                    "Chapter 2" => "Interesting stuff",
                    "Chapter 3" => "Final words",
                  },
    }

Perl 6 中有等效的东西吗?我想我记得 Damian Conway 在 YAPC 2010 上讨论过这个功能,但后来我丢失了我的笔记,谷歌搜索也没有帮助。

use v6;

my %title_for = (
  "Book 1" => { "Chapter 1" => "Introduction", "Chapter 2" => "Conclusion" },
  "Book 2" => {
                "Chapter 1" => "Intro",
                "Chapter 2" => "Interesting stuff",
                "Chapter 3" => "Final words",
              },
);

%title_for.say;

我发现最接近工作的是%title_for.say。然而,嵌套哈希看起来很混乱:

Book 1 => Chapter 1 => Introduction, Chapter 2 => Conclusion, Book 2 => Chapter 1 => Intro, Chapter 2 => Interesting stuff, Chapter 3 => Final words

我正在使用 Perl6 运行MoarVM http://www.moarvm.com来自2015 年 1 月发行 Rakudo Star http://rakudo.org/downloads/star/.


Perl6 文档 http://doc.perl6.org/language/5to6#Data%3A%3ADumper似乎推荐使用.perl在数据结构上,但看起来漂亮的打印需要额外的工作:

Given:

my @array_of_hashes = (
    { NAME => 'apple',   type => 'fruit' },
    { NAME => 'cabbage', type => 'no, please no' },
);

Perl 5

use Data::Dumper;
$Data::Dumper::Useqq = 1;
print Dumper \@array_of_hashes; # Note the backslash.

Perl 6

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

如何在 Perl6 中查看散列的内容(以类似于 Perl 5 模块 Data::Dump 或 Data::Show 的方式)? 的相关文章

  • 从 shell 脚本调用 Perl,如何将返回值从 Perl 传递到 shell?

    我成功地从 shell 脚本调用 Perl 脚本 现在我想将 Perl 脚本的返回值传递给 shell 脚本 指示它是否成功 我该怎么做呢 只需使用适当的退出值退出 Perl 脚本即可 exit exit value exit 0 if p
  • Perl:Chomping字符串后,它不打印字符串的值

    所以我目前正在尝试编写一个 perl 脚本来读取一个文件并写入另一个文件 目前 我遇到的问题是从解析的行中删除换行符 我输入这样的文件 BetteDavisFilms txt 1 Wicked Stepmother 1989 as Mira
  • 在 Perl 中组装 XML

    我需要对 NetApp 文件管理器进行 API 调用 我知道我需要发送什么原始 XML
  • Perl 构建、单元测试、代码覆盖率:一个完整​​的工作示例

    我找到的关于 Perl 构建过程 单元测试和代码覆盖率的大多数 Stackoverflow 答案都只是将我指向 CPAN 那里的文档 指向 CPAN 模块绝对没有任何问题 因为完整的文档应该位于此处 不过 在很多情况下 我很难找到完整的工作
  • 更新命令行输出

    我的程序 碰巧是用 Perl 编写的 尽管我不认为这个问题是 Perl 特定的 在程序中的某一点输出状态消息 Progress x yy where x and yy是一个数字 例如 Progress 4 38 我想在打印新的状态消息时 覆
  • 多维哈希排序 - Perl [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我真的需要一些帮助来理解这个哈希并对
  • 哪些可移植性问题与 C 中指针的字节级访问相关?

    Purpose 我正在为一个较大的项目编写一个小型库 它提供 malloc realloc free 包装函数以及一个可以告诉您其参数 类型为void 对应于由库的包装函数分配和管理的活动 尚未释放 内存 我们将此函数称为isgood me
  • Perl - 以相反的顺序逐行读取文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Perl 中从文件末尾读取行 https stackoverflow com questions 303053 how can i read lines from the end of fil
  • 如何从所属类型外部访问私有方法或属性?

    在极少数情况下 这实际上是可以接受的 例如在单元测试中 您可能想要获取或设置私有属性的值 或者调用不可能的类型的私有方法 难道真的不可能吗 如果没有 你怎么能做到呢 有两种方法可以访问类型的私有方法 一种方法可以获取私有属性 除了第一种调用
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • 如何添加到 Ruby 中的现有哈希

    关于添加一个key gt value与 Ruby 中现有的填充哈希配对 我正在学习 Apress 的 Beginning Ruby 并且刚刚完成了哈希章节 我试图找到最简单的方法来使用哈希实现与数组相同的结果 x 1 2 3 4 x lt
  • 使用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 我的文件有一
  • 如何在 Perl 中使用 use strict 一次一行处理多行字符串?

    我正在尝试找出 PBP 批准的正确方法来一次一行处理多行字符串 许多 Perl 编码人员建议将多行字符串视为文件句柄 除非您在脚本中使用 use strict 否则它可以正常工作 然后 您会收到编译器发出的警告 提示在使用严格引用时无法使用
  • Perl 和 Unix 如何以相同的顺序对 Unicode 字符串进行排序?

    我正在尝试获取 Perl 和 GNU Linuxsort 1 程序就如何对 Unicode 字符串进行排序达成一致 我在跑sort with LANG en US UTF 8 在Perl程序中我尝试了以下方法 use Unicode Col
  • 使用 SIGINT 默认处理程序时从 system() 返回值

    我遇到了一些奇怪的返回值system 当子进程从终端接收到 SIGINT 时 解释一下 从 Perl 脚本parent pl I used system 运行另一个 Perl 脚本作为子进程 但我还需要通过 shell 运行子进程 所以我使
  • 如何按键中的值对 Redis 哈希进行排序

    Redis 有没有一种好方法来获取按值排序的哈希中的键 我查看了文档 但没有找到直接的方法 另外有人可以解释一下redis中的排序是如何实现的 以及什么吗 本文档 http redis io commands SORT using hash
  • 使用 Perl 获取 值

    因此 我有一个报告工具 可以在 HTML 文件中输出作业调度统计信息 并且我希望使用 Perl 来使用这些数据 但我不知道如何单步浏览 HTML 表 我知道如何使用 jQuery 来做到这一点 find tr each function v
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self

随机推荐