2013-02-14 56 views
-4

所以這個錯誤讓我很生氣。我讀過很多論壇和關於這個錯誤的很多問題。但是我所嘗試的一切似乎都無法解決所有問題。繼續獲取「需要明確的包名稱」錯誤

我有嚴格的,這是我的代碼如下所示:

my $resultsHash; 

my $exResults = Array of Results 

foreach my $exData (@$separateArray){ 

push (@{ $resultsHash }, $exData); 
push (@{ $resultsHash{$exData} }, @$exResults); 

} 

我在做什麼錯?有一個更好的方法嗎?

回答

0

在告訴你,你正在使用,但沒有宣佈%resultsHash$separateArray代碼;申報或以其他方式解決問題。

究竟什麼是你想擁有$resultsHash/%resultsHash末看起來像?

更新:聽起來你想聲明%resultsHash,不是$ resultsHash,然後執行:

$resultsHash{$exData} = $exResults 

,而不是推?

+0

噢,對不起,但我應該提到,$ separateArray在此塊之前聲明,這是另一個函數調用具有返回數組數據集。 但我希望%結果哈希有一個$ exData的關鍵字和@ $ exResults的數組作爲值。 – Samuelitor 2013-02-14 00:58:42

1

你寫的不是Perl中,通過一個長長的。

必須啓動每個程序與use strictuse warnings,並聲明每個變量的第一個使用點。

你有多個變量

例如,聲明

push @{ $resultsHash }, $exData 

對待$resultsHash對數組的引用。但是

push @{ $resultsHash{$exData} }, @$exResults 

使用%resultsHash,這是單獨的對象。

而且Array of Results不是Perl的。你似乎是從$exResults推動,就好像它是一個數組的參考,但它是如何填充的?

如果你解釋你的代碼更好的話,我肯定我們可以幫你。

+0

我會發布更多的示例,但是Array of Results是一個函數調用,用於從ms sql數據庫獲取數據,如$ exResults = self-> GetViewData($ viewName,$ colName,$ colValue),並返回數據結果在一個數組中, – Samuelitor 2013-02-14 01:23:30