0

Perl にはかなり新しいので、ここに非常に明白な解決策があるかもしれません。私はログファイルを調べて、基本的に特定のものをハッシュに追加していますが、次のようになっています:

"パッケージ "serv.int" を介してオブジェクト メソッド "1339384721" を見つけることができません (おそらく "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";
4

1 に答える 1

0

=>ではなく使うべき->でした。

于 2012-06-19T17:52:32.837 に答える