我試圖把一個散列%listvol
放入Perl中的數組@fileInfo
。爲什麼我通過迭代這個散列獲得相同的值?
@fileInfo = ($filename, $data, $index, \%listvol);
%listvol
包含體積的列表:鍵= $vol
,值= $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
。我似乎每次都得到相同的價值。
有沒有人有想法?
[適用於我]。(http://paste.scsys.co.uk/197007?ln=on&hl=on)您在問題描述中遺漏了一些內容,並且問題必須隱藏在那裏。 - [編輯你的問題](http://stackoverflow.com/posts/10548834/edit)爲[提供一個展示該問題的完整可運行程序](http://sscce.org),包括將示例數據分配給相關變量。 – daxim
看起來你並沒有使用'use strict',Patrick。如果有的話,可以通過使用範圍縮小的詞法變量來避免這個問題,而不是全局的變量。 – TLP