perl的foreach循环的坑
2016-05-06 16:19
190 查看
最近在写perl脚本的时候用foreach遍历hash的时候,出现遇到了一个问题,就是说当hash为一层的时候,并不会有问题,但是当hash类型结构比较复杂的时候,就会有需要注意的地方了。
还是举例子说明最实际一些了,例如下面的这个%hash
一开始我就是这样来写的,觉的很正常啊,就是普通的嵌套循环呗,但是一执行,就开始报错了,提示$subkey是一个hash类型,后来在网上找了半天找到了一个例子,明白了怎么回事了,
修改如下:
在第二次遍历hash的子集的时候要吧$hash看成一个整体,弄明白了这个了,也给自己记录一个下。
还是举例子说明最实际一些了,例如下面的这个%hash
my %hash; %hash = ("小明"=>{'语文'=>50, '数学'=>60}, "小刚"=>{'语文'=>80, '数学'=>90}); foreach my $key ( keys %hash ) { print "$key:\n"; my %subhash = $hash{$key}; foreach my $subkey ( keys %subhash ) { print "\t$subkey => $subhash{$subkey}\n"; } }
一开始我就是这样来写的,觉的很正常啊,就是普通的嵌套循环呗,但是一执行,就开始报错了,提示$subkey是一个hash类型,后来在网上找了半天找到了一个例子,明白了怎么回事了,
修改如下:
my %hash; %hash = ("小明"=>{'语文'=>50, '数学'=>60}, "小刚"=>{'语文'=>80, '数学'=>90}); foreach my $key ( keys %hash ) { print "$key:\n"; my $subhash = $hash{$key}; foreach my $subkey ( keys %$subhash ) { print "\t$subkey => $$subhash{$subkey}\n"; } }
在第二次遍历hash的子集的时候要吧$hash看成一个整体,弄明白了这个了,也给自己记录一个下。
相关文章推荐
- Android屏幕适配全攻略(最权威的官方适配指导)
- 从源码角度看一个apk的启动过程和一个activity的启动过程
- Android ViewPager滑动事件讲解
- 使用SharedApplication进行传值
- c# windows服务如何获取自己的安装路径
- 如何设计和维护好一个大项目
- 安卓面试题
- 【Shell】一些比较有用、常用的shell命令
- Python全栈开发之3、数据类型set补充、深浅拷贝与函数
- django 获取系统当前时间 和linux 系统当前时间不一致 问题处理。
- IOS UITextField输入位数限制
- canvas 二 canvas绘制表盘,及canvas曲线的绘制
- android GridView显示相同尺寸图片以及预览功能
- python学习2016.4.13
- javascript查找DOM元素的方法总结
- OpenFileDialog获取文件名和文件路径问题
- [No00008C]图解SQL的各种连接join让你对SQL的连接一目了然
- 湖南纪委通报7名党员干部处理
- 超级表格全新升级,这些功能你不可能在其他软件上看到
- python基础IV(切片、迭代、生成列表)