按值搜索数组中的哈希值

2024-04-14

我有一个函数可以将 Excel 数据提取到哈希数组中,如下所示:


sub set_exceldata {

    my $excel_file_or = '.\Excel\ORDERS.csv';
    if (-e $excel_file_or) {

        open (EXCEL_OR, $excel_file_or) || die("\n can't open $excel_file_or: $!\n");                   
        while () {

            chomp;
            my ( $id, $date, $product, $batchid, $address, $cost ) = split ",";
            my %a = ( id      => $id
                    , date    => $date
                    , product => $product
                    , batchid => $batchid
                    , address => $address
                    , cost    => $cost
                    );
            push ( @array_data_or, \%a );
        }
        close EXCEL_OR;
    }
}

填充哈希数组就可以了。然而,困难的部分是在数组中搜索特定项(哈希)。我似乎无法找到 id 或 21、batchid 为 15 或成本 > 20 美元等的项目。

我将如何实施这样的搜索工具?

谢谢大家,


凭借的力量grep http://perldoc.perl.org/functions/grep.html

my @matching_items = grep {
  $_->{id} == 21
} @array_data_or;

如果您知道只会退回一件商品,您可以这样做:

my ($item) = grep {
  $_->{id} == 21
} @array_data_or;

(未经测试,我已经有一段时间没有写其中的一个了,但这应该可行)

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

按值搜索数组中的哈希值 的相关文章

随机推荐

  • 如何在按钮单击时使用 jQuery 验证插件

    我正在尝试执行 jQuery 验证插件 但遇到了一些问题 在同一个按钮上 我必须首先执行验证 当验证成功时 它通过获取该按钮的 id 来执行一些其他 jQuery 代码 例如查看下面的代码 function form insert vali
  • Bootstrap 3 的活动按钮

    在我的导航栏中 我希望当我单击按钮时它们变为活动状态 阴影 现在 我只能永久使它们处于活动或非活动状态 但不知道单击它们后如何更改它 我正在使用新的 Bootstrap 3 0 例如 不活跃 li li Active li class ac
  • Chrome 扩展已禁用“此扩展可能已损坏”Chrome 63.0.3239.84

    我有一个私有 Chrome 扩展程序 可以打开一个文本框并使用文本框中的输入在新选项卡中打开 URL 它一直工作正常 直到上周末 Chrome 更新提示新的 此扩展程序可能已损坏 错误 在 Windows 上 Chrome 将禁用该扩展 在
  • C++ 重载运算符 << for std::string

    我现在刚刚看到另一个简单的 C 代码使用 sprintf 将 C 内置函数附加到字符数组中 我想足够了 我可以帮助提供简单 轻量级 附加和非格式化功能std string 但由于它将被签入团队的通用代码中 我希望它是完美的 所以我需要一些建
  • 如果订单具有此特定类别,请更改 Woocommerce 电子邮件主题

    我只是想知道如果订单具有特定类别 例如 预购 是否可以更改电子邮件主题 我想将 PO 放在开头 PO 新客户订单 0000 然后客户的所有其他订单都会收到默认电子邮件主题 新客户订单 0000 add filter woocommerce
  • 地理编码 API 的准确度如何?什么是最准确的?

    我正在使用具有地理编码功能的谷歌地图 API 创建一个应用程序 显然 我想使用最准确的api 我给应用程序一个地址 我需要在地图上找到它 但我只要找到纬度和经度就可以了 然后我可以使用它将其合并到我选择的任何地图 api 中 根据您的经验
  • Scala 中的“Prolog 风格”:与过程代码混合?

    继续Scala 中的 prolog 风格 是什么 https stackoverflow com questions 73611934 what is prolog style in scala 我想在 Scala 3 中结合逻辑推理和过程
  • 如何刷新 Kendo UI 网格

    我正在尝试刷新 Kendo UI 网格 但尚未成功 有人可以告诉我我错过了什么或我做错了什么吗 我有以下代码 cshtml btnRefresh click function e ajax type POST url Url Content
  • iOS消费API设计

    我将为 Web 应用程序开发一个 iOS 应用程序 网络应用程序使用代码点火器 我将创建一个 iOS 应用程序将使用的 API 服务 我正在考虑创建一个 api 版本 这样当 web api 发生变化时 iOS 应用程序就会知道 担忧 当
  • 从输入字段读取属性时 HTML 编码丢失

    我使用 JavaScript 从隐藏字段中提取一个值并将其显示在文本框中 隐藏字段中的值被编码 例如
  • 从谷歌驱动器中永久删除文件

    如何使用谷歌脚本永久删除谷歌驱动器上的文件 我发现只有方法setTrashed 它将文件移至垃圾箱 但如何永久删除文件 Apps 脚本能够访问 Google API 但您需要在使用它们之前显式启用它们 Drive API 可用于删除文件 驱
  • 窗口标题文字大小

    HI 我想知道我应该在 xml 中使用什么样的属性来设置窗口标题文本大小 以下代码将有助于增加窗口标题栏的大小及其文本大小 希望这会有所帮助
  • 所有行值在一列中

    我想在一列中显示所有值 我可以怎样做呢 数据如下 user id degree fi degree en degree sv 3601464 3700 1600 2200 1020 100 0 0 3600520 100 1300 1400
  • Google_Activity 必须是 Google_ActivityObject 的实例

    我不知道这有什么错误 我可能认为谷歌 PHP 客户端库中也有人可以帮助解决这个问题 这是我的代码 this gt client gt refreshToken con 0 gt secret newtoken this gt client
  • 从外部 qss 文件读取 pyqt 样式表

    我已经制作了 pyqt stylsheet 的 qss 文件 我应该如何调用文件内容并提供给self setStylesheet from PyQt4 import QtCore s QtCore QString c myProject d
  • 激活和停用 UISearchController 时 UITableView 在位置之间跳转

    我最近在表视图中添加了 UISearchController 但遇到了动画问题 当搜索栏被点击并变为活动状态时 表格视图会向上跳跃以满足搜索控制器的新 活动 位置 这样做的问题是 搜索控制器动画到这个新位置 但表视图却没有 所以它非常不和谐
  • Android按钮栏-buttonBarButtonStyle在按钮之间留有间隙

    我在使用内置 Android 按钮栏样式时遇到一些问题 为每个按钮指定宽度 0 和权重 1 后 两个按钮之间仍然存在大约 1px 的间隙 参见图片 消除这种差距的最佳方法是什么 为什么它一开始就在那里
  • 使用按位运算符从 32 位整数检索字节

    这是问题和我目前遇到的问题 我只是不明白这是怎么错的 getByte 从字 x 中提取字节 n 字节编号从 0 LSB 到 3 MSB 示例 getByte 0x12345678 1 0x56 合法操作 gt 最大操作数 6 评级 2 in
  • ViewModel 最佳实践

    From 这个问题 https stackoverflow com questions 526641 what to put in your viewmodel 看起来让控制器创建一个是有意义的视图模型这更准确地反映了视图试图显示的模型 但
  • 按值搜索数组中的哈希值

    我有一个函数可以将 Excel 数据提取到哈希数组中 如下所示 sub set exceldata my excel file or Excel ORDERS csv if e excel file or open EXCEL OR exc