我正在做一個小的datamining項目,其中perl腳本從SQL數據庫中獲取信息並對其進行分析。數據由幾個時間戳組成。我想查找某個特定日期有多少種特定類型的時間戳。 不幸的是,這是我的第一個perl腳本,當涉及到哈希和數組時,perl的本質讓我頗爲困惑。新的Perl用戶:使用陣列的散列
代碼段:
my %values=();#A hash of the total values of each type of data of each day.
#The key is the day, and each key stores an array of each of the values I need.
my @proposal;
#[drafted timestamp(0), submitted timestamp(1), attny approved timestamp(2),Organiziation approved timestamp(3), Other approval timestamp(4), Approved Timestamp(5)]
while(@proposal=$sqlresults->fetchrow_array()){
#TODO: check to make sure proposal is valid
#Increment the number of timestamps of each type on each particular date
my $i;
for($i=0;$i<=5;$i++)
$values{$proposal[$i]}[$i]++;
#Update rolling average of daily
#TODO: To check total load, increment total load on all dates between attourney approve date and accepted date
for($i=$proposal[1];$i<=$proposal[2];$i++)
$values{$i}[6]++;
}
我一直得到裏面的語法錯誤for循環遞增值。另外,考慮到我使用嚴格和警告,當我在哈希中訪問它們時,Perl會自動創建正確值的數組,還是我會在任何地方出現超出範圍的錯誤?
感謝您的幫助, 扎克
這段代碼編譯? '(...)STATEMENT'通常是Perl中的錯誤。大括號是必需的 - 它需要用於(...){STATEMENT}' – mob 2010-06-01 19:21:07