【发布时间】:2021-01-18 04:14:15
【问题描述】:
我正在为我们在工作中需要的 perl 模块构建安装程序。安装完所有依赖项后,我需要检查模块是否正常工作“使用 This::Module”。问题是,所有的模块都是按照一定的顺序安装的。
哈希看起来像...
my %modules=(
0 => {'name' => '/root/mods/CGI/perl-FCGI-0.74-8.amzn2.0.2.x86_64.rpm', 'method' => 'rpm', 'status'=>'pending'},
1 => {'name' => '/root/mods/CGI/perl-CGI-3.63-4.amzn2.noarch.rpm', 'method' => 'rpm','status'=>'done', 'validate' => ['CGI','CGI::Carp']},
2 => {'name' => '/root/mods/Digest/perl-Digest-1.17-245.amzn2.noarch.rpm', 'method' => 'rpm','status'=>'pending'},
3 => {'name' => '/root/mods/Digest/perl-Digest-MD5-2.52-3.amzn2.0.2.x86_64.rpm', 'method' => 'rpm','status'=>'done', 'validate' => ['Digest::MD5']},
4 => {'name' => '/root/mods/HTTP/perl-Business-ISBN-Data-20120719.001-2.el7.noarch.rpm','method' => 'rpm','status'=>'pending'},
5 => {'name' => '/root/mods/HTTP/perl-Data-Dumper-2.145-3.el7.x86_64.rpm','method' => 'rpm','status'=>'pending'},
6 => {'name' => '/root/mods/HTTP/perl-Business-ISBN-2.06-2.el7.noarch.rpm','method' => 'rpm','status'=>'done'}, 'validate' => ['HTTP::Request::Common']},
每个换行符都是一个新模块的开始。一旦“状态”=>“完成”,我需要访问“验证”中的模块。这是一个数组,因为在某些情况下,多个模块与一个安装顺序相关联。
如何循环遍历并单独返回每个数组元素?
【问题讨论】:
-
你试过什么?您在哪里遇到问题?
-
我尝试遍历哈希的索引,然后通过验证,但每次我都不会得到任何返回。我能够使用“print @{$modules{1}{'validate'}};”成功打印数组内容但我无法成功循环遍历数组。