1
我有一個問題,我需要將數組作爲關聯數組中的值。將數組作爲值存儲在關聯數組中
請仔細閱讀下面的代碼。在這裏我試圖循環目錄中的文件,並且更有可能多於一個文件可以具有相同的ctrno
。所以,我想看看具有相同ctrno
的所有文件是什麼。以下代碼在else條件中出現「$ctrno_hash[$ctrno] = @arr;
」錯誤。同樣的情況下,如果條件也是如此。
我遵循正確的方法,還是可以以不同的方式做?
sub loop_through_files
{
$file = "@_";
open(INPFILE, "$file") or die $!;
#print "$file:$ctrno\n";
while (<INPFILE>)
{
$line .= $_;
}
if ($line =~ /$ctrno/)
{
print "found\n";
if (exists $ctrno_hash[$ctrno])
{
local @arr = $ctrno_hash[$ctrno];
push (@arr, $file);
$ctrno_hash[$ctrno] = @arr;
}
else
{
local @arr;
push(@arr, $file);
$ctrno_hash[$ctrno] = @arr;
}
}
}
謝謝。有效。 – Jagannath 2010-05-11 09:45:28