首页 / 知识
如何在Perl中从数组中散列?
2023-04-14 15:42:00

How to get hashes out of arrays in Perl?我想在perl中写一个小小的" DBQuery"函数,这样我就可以使用一个内联函数来发送一条SQL语句并接收回来,以及一个散列数组,即一个记录集。但是,我遇到了Perl语法问题(可能还有一些奇怪的指针/引用问题),这阻止了我从数据库中获取的哈希值中打包信息。下面的示例代码演示了此问题。 我可以使用以下语法从数组内的哈希中获取数据" Jim":
返回"吉姆" 但是如果我首先将数组中的哈希记录复制到它自己的哈希变量中,那么我很奇怪地无法再访问该哈希中的数据:
返回"(空白) 这里是显示问题的完整示例代码。任何帮助表示赞赏:
嵌套的数据结构包含哈希引用,而不是哈希。
如果您曾经遇到过深刻的Perl数据结构,则可以通过使用Data :: Dumper进行打印以将其打印为人类可读(和Per??l可分析的)形式而受益。 哈希数组实际上并不包含哈希,而是对哈希的引用。
为%row分配一个条目。关键是标量:
哪个是对哈希的引用,但该值为空白。 您真正想做的是:
否则:
其他人则对哈希与哈希引用进行了评论。我觉得还应该提到的另一件事是您的DBQuery函数-似乎您正在尝试执行DBI中已内置的某些操作?如果我正确理解了您的问题,则您正在尝试复制类似selectall_arrayref: 的内容
要添加到上面的可爱答案中,请允许我补充说,您应该始终,始终,始终(是,三个"总是"是)在代码顶部使用"使用警告"。如果这样做,您将得到警告"参考在-e第1行找到了偶数大小的列表的位置"。 数组中实际具有的是hashref,而不是哈希。如果您不理解此概念,则可能值得阅读perlref文档。 要获取您需要做的哈希
例如
尽管。我不确定您为什么要这么做,除非出于学术目的。否则,我建议在DBI模块中使用fetchall_hashref / fetchall_arrayref,或使用类似Class :: DBI的方法。 还要注意要使用的一个很好的perl习惯用法是
遍历列表。 |
最新内容
相关内容
写5条linux命令语句?
写5条linux命令语句?,工作,地址,系统,信息,目录,命令,管理,标准,功能,文件,linux常用的命令有哪些1、linux系统常用操作命令如下:ls:全拼list,功linux命令语句规律?
linux命令语句规律?,系统,管理,基础,网络,信息,命令,服务,简介,工具,标准,linux必学的命令是什么?1、Linux常用的命令可以分为以下几类:安装和调用函数命令linux?
调用函数命令linux?,系统,管理,网络,通用,统一,观察,地址,代码,设备,地方,怎么调用system函数,使用Android的linux命令1、int system(const chlinux循环语句命令?
linux循环语句命令?,地方,增长,数字,语句,流程,名称,工具,代码,数据,条件,Linux入门系列——awk命令详解1、其中command是真正的awk命令,-F表示linux创建数组命令?
linux创建数组命令?,地址,工作,系统,信息,命令,代码,目录,情况,标准,文件,Linux命令linux系统常用操作命令如下:ls:全拼list,功能是列出目录的内linux查询函数命令?
linux查询函数命令?,系统,信息,名称,标准,函数,百度,代码,名字,最新,实时,Linux下查找一个函数在哪个库文件中1、默认状态下,gcc并不搜索数学库嵌入式linux命令语句?
嵌入式linux命令语句?,系统,环境,基础,网络,软件,基础知识,服务,设备,管理,嵌入式,嵌入式linux系统开发详解_嵌入式linux系统介绍嵌入式Linux深入理解python函数传参机制
深入理解python函数传参机制,培训,对象,函数,变量,类型,复本,下面,操作,机制,内存,首先需要申明的一点是,python里是没有像C和C++里那样按值传Python中的匿名函数lambda
Python中的匿名函数lambda,代码,地方,名字,主体,名称,培训,函数,表达式,赋值,语句,简述除了def语句之外,Python还提供了一种生成函数对象的表Python3实现旋转数组的3种算法
Python3实现旋转数组的3种算法,位置,代码,时间,培训,算法,数组,解法,结果,长度,索引,下面是Python3实现的旋转数组的3种算法。一、题目给定一Python有哪些常用函数?
Python有哪些常用函数?,数据,函数,地址,数字,培训,工作,网络,位置,字符串,字符,Python常用函数有哪些?我想大家都比较好奇这个问题,今天小编特Python 炫技操作:条件语句的七种写
Python 炫技操作:条件语句的七种写法,代码,培训,工程,公共,写法,语法,例子,发烧友,操作,语句,有的人说Python入门容易,但是精通难的语言,这点我