Perl:对哈希数组进行切片

2023-12-10

下面代码的输出始终为空。不确定我做错了什么,希望得到任何帮助。如何获取哈希数组中特定哈希中的键的值?

use strict;
use warnings;

my %dot1 = ('a'=>1,'b'=>2);
my %dot2 = ('a'=>3,'b'=>4);
my %dot3 = ('a'=>5,'b'=>6);
my %dot4 = ('a'=>7,'b'=>8);

my @array = (%dot1,%dot2,%dot3,%dot4);

my %x = $array[2];
my $y = $x->{'a'};

print "$y \n";

你没有哈希数组。你有一个看起来像散列的数组,其中的键a and b各会出现四次,顺序相对随机。

print Dumper \@array;
$VAR1 = [
          'a',
          1,
          'b',
          2,
          'a',
          3,
          'b',
          4,
          'a',
          5,
          'b',
          6,
          'a',
          7,
          'b',
          8
        ];

之后,您将使用$x->{a},这是获取密钥的语法a来自哈希引用$x,但你只声明了一个散列%a。这反过来又会破坏,因为你给它一个包含一个值的奇怪大小的列表。

相反,将对哈希值的引用添加到数组中。这样您将获得多级数据结构而不是平面列表。然后使x变量标量$x.

my %dot1 = ('a'=>1,'b'=>2);
my %dot2 = ('a'=>3,'b'=>4);
my %dot3 = ('a'=>5,'b'=>6);
my %dot4 = ('a'=>7,'b'=>8);

my @array = (\%dot1,\%dot2,\%dot3,\%dot4); # here


my $x = $array[2]; # here
my $y = $x->{'a'};

print "$y \n";

这将打印5.

您应该阅读以下内容中的数据结构:perlref and 佩尔勒夫图特.

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

Perl:对哈希数组进行切片 的相关文章

  • 何时使用包含引用类型的值类型数组而不是引用类型数组?

    假设我有以下内容 public class MyElement Serializable StructLayout LayoutKind Sequential struct ArrayElement internal MyElement E
  • 派生类型数组:选择条目

    目前在我的代码中我有一个二维数组 integer allocatable elements 并定义一些常量 integer parameter TYP 1 integer parameter WIDTH 2 integer paramete
  • 如何在 JavaScript 中将数组拆分为数组对?

    我想将一个数组拆分为数组对 var arr 2 3 4 5 6 4 3 5 5 would be var newarr 2 3 4 5 6 4 3 5 5 你可以使用jsreduce https developer mozilla org
  • Java-使用递归压平数组

    我一直在练习算法 递归一直是我的弱项 该问题要求将嵌套数组展平为单个数组 如果使用给出 O n 3 给定相同大小的 3d 数组 解决方案的循环 这将很简单 然而 通过递归 我已经挣扎了几个小时 这就是我所拥有的 请注意 我已经尝试过使用我的
  • 用埃拉托斯特尼筛法寻找素数(原文:有更好的方法来准备这个数组吗?)

    Note 下面的版本 2 使用埃拉托斯特尼筛法 有几个答案对我最初提出的问题有所帮助 我选择了埃拉托斯特尼筛法 实施了它 并适当地更改了问题标题和标签 感谢所有提供帮助的人 介绍 我编写了这个奇特的小方法 它生成一个包含小于指定上限的素数的
  • 将 2D 矢量转换为 2D 数组

    自从我上次访问数组以来已经有一段时间了 我最近一直在使用向量 我需要将 2D 向量转换回 2D 数组 因为我正在使用的库接受类型的参数double array该数组的访问器在哪里foo i j 例如 这是我的代码 double setupH
  • 如何比较两个文件中的多列并在找​​到匹配时从另一列检索相应的值

    我有两个文件 File1 txt 和 File2 txt 我需要将 File1 中的三列 1 2 和 3 分别与 File2 的 4 5 和 6 进行比较 如果找到匹配项 我想从 File2 的第 2 列中检索相应的值并将其粘贴到输出中 T
  • 如何为不同的 Perl 应用程序安装专门的环境?

    就功能而言是否有与 Python 相同或接近的东西虚拟环境 http pypi python org pypi virtualenv what it does 但是对于 Perl 来说呢 我已经用 Python 进行了一些开发 并且将非系统
  • C# 可以扩展数组吗?

    我习惯向 IEnumerable 等外部类添加方法 但是我们可以在 C 中扩展数组吗 我计划向数组添加一个方法 将其转换为 IEnumerable 即使它是多维的 不相关如何在 C 中扩展数组 https stackoverflow com
  • 为什么子程序需要在声明其中使用的变量之后编写?

    假设我们有这段代码 为什么它会因显式包名称错误而失败 因为该函数仅在声明后才被调用 value use strict use warnings sub print value print n value my value 2 print v
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • VB - 如何读取和写入二进制文件?

    如何从任何文件读取原始字节数组 Dim bytes as Byte 然后将该字节数组写回到新文件中 我需要它作为字节数组来在两者之间进行一些处理 我目前正在使用 To read Dim fInfo As New FileInfo dataP
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • 使用 javascript Array reduce() 方法有什么真正的好处吗?

    reduce 方法的大多数用例都可以使用 for 循环轻松重写 对 JSPerf 的测试表明 reduce 通常会慢 60 75 具体取决于每次迭代内执行的操作 除了能够以 函数式风格 编写代码之外 还有什么真正的理由使用reduce 吗
  • Firestore 更新后仅获取文档一次

    我有一个 tableView 它从 Firestore 集合中获取所有文档 并且我只想在用户刷新 tableView 后将最后一个文档添加到 Firestore 时获取一次 然后我想删除侦听器 以便当用户刷新 tableView 时仅获取文
  • 如何计算伽罗瓦域上的numpy数组?

    我想在伽罗华域 GF4 上使用 numpy 数组 所以 我将 GF4 类设置为数组元素 它适用于数组 整数计算 但不适用于数组 数组计算 import numpy class GF4 object class for galois fiel
  • 标准转换:数组到指针的转换

    这是ISO的观点 标准转换 数组到指针的转换 4 2 1 数组 类型的左值或右值 N T 或 未知边界的数组 T 可以转换为右值 类型为 指向 T 的指针 结果是 指向第一个元素的指针 数组 如果可能的话 任何人都可以用一个示例程序来解释这
  • 如何获得n个具有不同元素数量的数组的所有可能组合?

    我有一些在编程时未知的数组数量 也许是 3 或 4 或 7 每个数组都有一些元素 即 a 1 2 3 4 b 6 7 5 2 1 c 22 4 6 8 4 8 5 4 d e f g 我想通过从每个数组中采样一个数字来获得所有可能的组合 例
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var

随机推荐

  • 使用 GAC 的优点和缺点是什么?

    除此之外 是否存在必须使用全局程序集缓存或不能使用它的情况 从 GAC 加载程序集意味着更少的开销和安全性 您的应用程序将始终加载正确版本的 NET 库 您不应该生成 GAC 之外的程序集 因为几乎不会获得任何性能提升 在许多情况下甚至会损
  • C# 网格绑定不更新

    我有一个绑定到集合的网格 由于某种我不知道的原因 现在当我在网格中执行某些操作时 网格不会更新 情况 当我单击网格中的按钮时 它会增加同一行中的值 当我单击时 我可以调试并查看值增量 但网格中的值不会改变 BUT当我单击按钮 最小化并恢复窗
  • LINQ to Entities 仅支持无参数构造函数和初始值设定项

    我在这个 linq 表达式中遇到此错误 var naleznosci from nalTmp in db Naleznosci where nalTmp idDziecko idDziec select new Payments nalTm
  • QScopedPointers 的 QList

    我正在尝试将 QScopedPointers 存储在 QList 中 我发现了这个评论 还可以使用 QList gt 库巴 奥伯 2014 年 1 月 14 日 18 17 对此答案的第一条评论 https stackoverflow co
  • 如何使用python将文件以块的形式传输到azure blob存储而不写入文件

    我需要将文件从 google 云存储传输到 azure blob 存储 谷歌提供了一个代码片段来将文件下载到字节变量 如下所示 Get Payload Data req client objects get media bucket buc
  • self.var 和简单 var 之间的区别

    使用有什么区别self var与只是var在 Objective C 课程中 对其中一方有好处还是有危险 self var称为property for var 在幕后 Objective C 会自动生成属性的 getter 如果愿意的话 您
  • psutil - 获取进程名称为空

    我正在尝试运行此代码 但没有按名称获取进程列表 import psutil PROCNAME python exe for proc in psutil process iter if proc name PROCNAME print pr
  • 使用 WinPython 作为 PyCharm 的解释器

    抱歉问一个简单的问题 我想使用 WinPython 最近安装 作为 PyCharm 社区版的解释器 但收到错误 所选文件不是 Python SDK 的有效主目录 见图 有人知道可能是什么问题吗 我还需要执行任何其他步骤 使用路径等 吗 您需
  • 为什么xpath删除html特殊字符?

    为什么会这样 html a href browse product do cid 1 amp vid 1 amp pid 1 class productItemName what is going on here a dom new DOM
  • 是否可以使用 JDK 1.7 或更高版本在没有 main() 的情况下编写 Java 程序? [复制]

    这个问题在这里已经有答案了 以下程序将打印Hello world当编译时JDK 1 6或更低版本JDK public class A static System out println Hello world System exit 0 B
  • 将python库添加到google datalab环境

    我在用着谷歌数据实验室在谷歌云平台上 第一次尝试效果很好 我喜欢现在在云中运行 jupyter 笔记本服务器是多么容易 比启动本地主机服务器更快 这是梦幻般的 但现在我想安装基本 datalab 环境中未包含的 python 库 特别是我需
  • PHP 按日期排序数组? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 按包含日期的元素对多维数组进行排序 我在 PHP 数组中有一些来自 XML 或 JSON 的数据 如下所示 0 array 2 title string 38 Another title da
  • 在单独的 DIV 中显示 MySQL 中的每一行

    我有一个帖子表 其中包含帖子字段 假设我有 10 篇帖子想要在 10 个 div 中显示 我应该如何继续这样做 我已经设法使用 while 循环获取完整内容 但这仅在一个位置显示完整内容 并且我希望每个单独的帖子都有单独的 div 这样我可
  • 在使用其中的元素之前,如何检查我的表单步进器步骤是否已完成渲染?

    我正在使用Angular2 向导填写银行帐户详细信息 在第二步中 我要求提供帐户信息 号码 CVC 到期日期 这些元素来自Stripe js使用ngx 条纹图书馆到mount我的元素 然后 当我单击下一步并创建 Stripe 令牌 crea
  • 在javascript中读取文本文件的第一行

    假设我的网络服务器上有一个文本文件 位于 today changelog en txt它存储有关我的网站更新的信息 每个部分都以版本号开头 然后是更改列表 因此 文件的第一行始终包含最新版本号 我想使用纯 JavaScript 读出该版本号
  • 如何使用 XML 数据更新 SQL 表列

    Table 1 id title chtml 0 Lopez Michelle MD
  • Yii CHtml::radioButtonList - CSS 水平对齐

    我正在使用 yii 框架进行开发 我编写了 CSS 并且能够对齐我的
  • 如何修复 Visual Studio 2010 中的“无法找到引导的先决条件”警告?

    我在用 x64 计算机上的 Visual Studio 2010 构建 Windows 应用程序 针对 NET Framework 4 Client Profile 和 x86 我正在使用 ClickOnce 进行部署 我已经安装了 Mic
  • chrono::year 对象是如何构造的?

    我刚刚注意到c 20将会有chrono year 它的构造函数接受一个int在范围中 32767 32767 但是我不清楚这个论点代表什么 这是否符合tm year1900年的起源 也许time t1970年的起源 或者也许是在公元原点为
  • Perl:对哈希数组进行切片

    下面代码的输出始终为空 不确定我做错了什么 希望得到任何帮助 如何获取哈希数组中特定哈希中的键的值 use strict use warnings my dot1 a gt 1 b gt 2 my dot2 a gt 3 b gt 4 my