【发布时间】:2013-06-07 17:50:22
【问题描述】:
我正在尝试解析作为数组引用进入我的脚本的日志行。
我有另一个子例程,此日志行被传递给它以提取某个值,但是该函数似乎没有接收日志行而是获取值 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
我将不胜感激。
【问题讨论】: