【发布时间】:2014-09-28 03:39:48
【问题描述】:
我尝试创建一个 perl 结构数组。每个结构包含两个标量和一个散列。 稍后我想找到数组的一项,获取哈希并在哈希中找到一个标量。
我可以在数组中找到项目并获取标量。 但我不知道如何正确获取哈希和其中的值。
我尝试了有/没有参考。
非常感谢
#hash
%latestInfo = (
8 => '30',
);
#struct
package Myobj;
use Class::Struct;
struct( name => '$', majorVer => '$', latestVer => '%');
$w1 = new Myobj;
$w1->name('test');
$w1->majorVer(5);
$w1->latestVer($latestInfo);
#array with all version information
@versions=($w1, ...);
sub getVersionFromMajor
{
foreach $ver (@versions) {
if ($ver->majorVer eq $_[0]) {
return $ver;
}
}
}
#
#main
#
#ok: get version info from structures/array
local($ver) = getVersionFromMajor(5);
local($n) = $ver->name;
#fail: get hash inside item
my $latest = \$ver->latestVer;
%lat = $ver->latestVer;
#fail: get value inside hash
local($m) = $latest{8};
【问题讨论】:
-
始终在每个 perl 脚本的顶部包含
use strict;和use warnings;。检查this 和许多其他线程的原因。
标签: arrays perl hash perl-data-structures