【发布时间】:2011-04-11 12:03:42
【问题描述】:
嘿,我正在开发一个非常基本的解析器。我几乎可以肯定我的正则表达式是正确的,但值似乎没有存储在我的$1 和$2 中。难道我做错了什么?我只是在寻找改变我的代码的提示。感谢您的任何建议!另外,我是 Perl 的新手,所以如果我做错了什么,我希望能站稳脚跟,养成良好的习惯。
文件中的示例行:
Sat 02-August-2008 20:47 - 123.112.3.209 - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
我只是从时代中得到时间。
foreach my $line (@lines)
{
my $match =~ /\d\d-\w+-\d{4} (\d)(\d):\d\d/;
if( $1 == 0)
{
$times[$2] = $times[$2] + 1;
}
else
{
my $time = $1.$2;
$times[$time] = $times[$time]+ 1;
}
}
print "\n";
for(my $i=0;$i<24;$i++)
{
print "$i: $times[$i]\n";
}
【问题讨论】:
-
你要解析什么?你知道,我们在这里不是通灵者。
-
@jesperE 编辑示例。
-
我知道我正在从文件中获取这些行。我之前测试过,并且能够重新打印循环中的每一行。