2012-06-19 52 views
0

對Perl來說很新,所以這裏可能有一個非常明顯的解決方案。我正在通過一個日誌文件,並基本上添加到哈希某些東西,但我不斷收到:找不到對象方法 - Perl腳本

「找不到對象方法」1339384721「通過包」serv.int「(也許你忘了加載」serv .int「?)在logTest.pl第37行,第9行。」 我初始化這些變量和一切,所以我不明白爲什麼perl的抱怨......

#!/usr/bin/perl -w 
use strict; 
use warnings; 

my $LOGFILE = '/Users/user/Desktop/logTest'; 
my $downTime = 0; 
my $serviceName = 0; 
my %downTimeHash =(); 

open(LOGFILE, $LOGFILE) or die ("Couldn't open the file."); 

foreach my $line (<LOGFILE>) { 
chomp($line); 


#Checks for 'STATE' lines down 
if ($line=~/\s*;DOWN*/ && ($line=~/STATE:\s+([^;]+)/ || $line=~/ALERT:\s+([^;]+)/)) { 
#Get time service went down 
    if ($line=~/\[(\d*)\]*/) { 
     $downTime = $1; 
    } 
#Get service that went down 
    if ($line=~/STATE:\s+([^;]+)/ || $line=~/ALERT:\s+([^;]+)/) { 
     $serviceName = $1; 
    } 
#Add service and down time to hash 
%downTimeHash = ($serviceName->$downTime); 
} 
} 

print "%downTimeHash \n"; 
+0

'1339384721'和'serv.int'是我添加到散列中的兩個變量。 – jackie

+5

你的意思是使用'$ serviceName => $ downTime'而不是'$ serviceName - > $ downTime'嗎? – mob

+0

顯然是這樣:)固定它! haha – jackie

回答

0

我應該用=>而非->

相關問題