如何将嵌套的Perl哈希干净地转换为非嵌套的?
发布时间:2020-12-15 21:51:45 所属栏目:大数据 来源:网络整理
导读:假设嵌套的哈希结构%old_hash .. my %old_hash;$old_hash{"foo"}{"bar"}{"zonk"} = "hello"; ..我们想要“平坦化”(对不起,如果这是错误的术语!)到非嵌套哈希使用sub flatten(…)这样.. my %h = flatten(%old_hash);die unless($h{"zonk"} eq "hello"); f
假设嵌套的哈希结构%old_hash ..
my %old_hash; $old_hash{"foo"}{"bar"}{"zonk"} = "hello"; ..我们想要“平坦化”(对不起,如果这是错误的术语!)到非嵌套哈希使用sub& flatten(…)这样.. my %h = &flatten(%old_hash); die unless($h{"zonk"} eq "hello"); & flatten(…)的以下定义可以解决问题: sub flatten { my $hashref = shift; my %hash; my %i = %{$hashref}; foreach my $ii (keys(%i)) { my %j = %{$i{$ii}}; foreach my $jj (keys(%j)) { my %k = %{$j{$jj}}; foreach my $kk (keys(%k)) { my $value = $k{$kk}; $hash{$kk} = $value; } } } return %hash; } 虽然给出的代码有效,但它不是非常易读或干净. 我的问题是双重的: >给定代码在哪些方面与现代Perl最佳实践不对应?要严厉! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何使用perl命令行参数避免错误并使用strict
- Inno Setup设置App Path
- inno-setup – Inno安装程序中的序列号的CustomPage
- Delphi XE2,C++ Builder XE2,RAD Studio XE2 v16.0.4504.48
- perl学习记录(一)
- [Functional Programming ADT] Combine Multiple State ADT
- TED演讲的字幕下载
- Spring Data Rest自定义控制器与补丁方法 – 如何将资源与实
- Go笔记二(Interfaces)
- ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示