我正在尝试解析作为数组引用进入我的脚本的日志行。
我有另一个子例程,此日志行被传递给它以提取某个值,但是该函数似乎没有接收日志行而是获取值 1。当我尝试取消引用数组 ref 并将其分配给标量也是如此。
日志行看起来像 -
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
我将不胜感激这方面的任何帮助。