Perl5 Hash数组(数组元素是Hans结构)--2存在问题

上 一篇文章《Perl5 Hash数组(数组元素是Hans结构)》中遇到了一个Hash数组定义的问题

 

1、创建Hash数组定义源代码

#!/usr/bin/perl
####################################################################################
##            创建Hash数组定义
## 编写:高增光
## 日期:2011.09.16北京 
## 功能:测试脚本
## 脚本说明:
###------------------------------------------------------------------
my @array_attributeObjs = make_hash_array();

#print "数组的长度:".@attributeObjs_array."\n";

my $num = 0;
foreach $hash_obj (@array_attributeObjs) 
{
	$num++;
	print "数组外部->第$num个元素:".$hash_obj->{"attributecnname"}."\n";
}
### 函数名称: make_hash_array
### 函数功能: 创建Hash数组
### 输入参数:
### 输出参数: 无
### 返回  值: 
### 说    明:
###------------------------------------------------------------------
sub make_hash_array()
{
               #定义一个数组
	my @array_attributeObjs=();
	for ($count=0; $count <= 2; $count++)
	{
		$hash_obj->{"resattributeid"} = $count;
		$hash_obj->{"attributecnname"} = "新的Hash_$count";
		push(@array_attributeObjs,$hash_obj);
		print "数组内部->第$num个元素:".$array_attributeObjs[$count]->{"attributecnname"}."\n";
	}
	return @array_attributeObjs;
}

 2、创建Hash数组定义--运行结果

数组内部->第个元素:新的Hash_0
数组内部->第个元素:新的Hash_1
数组内部->第个元素:新的Hash_2
数组外部->第1个元素:新的Hash_2
数组外部->第2个元素:新的Hash_2
数组外部->第3个元素:新的Hash_2

 

3、咱们可以发现 在循环中是,数组取得的Hash值是正确的,但是一旦跳出循环则始终取得的是最后一次定义的Hash值。上一篇文章通过定义N个Hash表,然后把这N个Hash表插入到数组中。可以规避这个问题,但是不是最终解决办法?

 

希望可以跟大家探讨一下 如何解决?

你可能感兴趣的:(array,hash,哈希数组,Perl5,Hash数组)