【发布时间】:2012-05-19 21:37:41
【问题描述】:
我正在尝试在 Perl 中将哈希 %listvol 放入数组 @fileInfo。
@fileInfo = ($filename, $data, $index, \%listvol);
%listvol 包含一个卷列表:key = $vol,value = $vol。
第一个 $vol 值是 ABCDEF,然后是 GFFFF、EEEAA - 总是不同的。
然后我将数组@fileInfo放入哈希%listeAllFile:
$listeAllFile{$nameOfFile} = [@fileInfo];
稍后我尝试获取哈希%listvol,但没有成功。我正在使用此代码:
foreach $key (keys %listeAllFile) {
@tab = @{ $listeAllFile{$key} };
$filename = $tab[0];
%listvol = %{ $tab[3] };
foreach $vol (keys %listvol) {
print "\n vol is $vol for file $filename";
}
文件名总是不同的,所以没关系。但变量$vol 的值始终相同,ABCDEF。似乎我每次都得到相同的值。
有人有想法吗?
【问题讨论】:
-
Works for me. 你的问题描述中遗漏了一些东西,问题一定隐藏在那里。 - Edit your question 到 provide a full runnable program that exhibits the problem,包括将示例数据分配给相关变量。
-
看起来你没有使用
use strict,Patrick。如果你有,这个问题可以通过使用范围缩小的词法变量而不是全局变量来避免。