大家好,欢迎来到IT知识分享网。
今天我们继续使用引用来构造使用嵌套的数据结构
我们有以下的一些数据,需要读取到合适的数据结构中, 把它们写在程序最后的数据段中:
__DATA__
name:tom age:18 height:173
name:cat age:22 height:155
name:easy age:25 height:169
name:perl age:19 height:177
每行的内容都是以键值对的形式来呈现的, 因此内层数据用散列比较合适, 外层我们这里选用数组来存储
我们来看下具体实现
首先定义外围数据结构, 数组:
my @users;
逐行读取data段数据:
while(<DATA>){
过滤掉空行:
next if /^\s*$/;
根据非空字符来分割数据, 我们得到的是数值对组成的数组:
my @values = split /\s+/, $_;
定义内层数据, 散列
my %hash;
逐一将键值队拆分成键和值, 并存入散列:
for my $val(@values){
my ($key, $value) = split ‘:’, $val;
$hash{$key} = $value;
}
将存有键值数据的散列的引用存入外层数组, 注意,这边只能使用引用, 如果把散列直接存入数组, 会直接展开整个散列进行存储的:
push @users, \%hash;
}
读取数据:
for my $user(@users){
my %hash = %$user;
for my $key(keys %hash){
print “$key:$hash{$key} “;
}
print “\n”;
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/123867.html