スクリプトに配列参照として入ってくるログ行を解析しようとしています。
特定の値を抽出するためにこのログ行が渡される別のサブルーチンがありますが、関数はログ行を受信していないようで、代わりに値 1 を取得します。スカラーも。
ログ行は次のようになります-
print Dumper ($logline)
$VAR1 = '2013-06-07 17:22:32.219 <TID 1B344> [uss_smm.reqserv] 162.34.22.1: "POST /ts/start/67257-v/827987/ts/june7test1/backup/20130fd83788-02-ts&action=setarchiver×tamp=1370625752.172546&as=new2 HTTP/1.1" 200 - Success.';
Assigning the dereferenced value to scalar -
my $temp_line = @{ $logline };
print "temp_line is $temp_line \n";
temp_line is 1
サブルーチン呼び出しは -
my $arch = parse_Smmlog_Arch_Comm(@{ $logline });
解析のサブルーチンは -
sub parse_Smmlog_Arch_Comm($){
my $logline = shift;
print Dumper ($logline);
test_log(INFO,"in parse_Smmlog_Arch(), logline is - $logline ");
my @arr = split('&as=',$logline);
my @sec_arr = split(' ',$arr[1]);
return $sec_arr[0];
}
サブルーチンがログ行を受信しないため、スクリプトを実行するとこれが発生します。
Use of uninitialized value in split at /Users/myname/parseLog.pl
これについて何か助けていただければ幸いです。