【发布时间】:2012-04-18 14:11:42
【问题描述】:
不久前我创建了一个日志解析器。日志可以是几千行到几百万行。我将解析后的条目存储在哈希引用数组中。
我正在寻找有关如何存储我的输出的建议,以便在脚本再次运行时我可以快速读回它(这样可以避免重新解析日志的需要)。
最终目标是拥有一个允许用户创建查询的 Web 界面(基本上将解析后的输出视为存在于数据库中)。
我已经考虑将 Data::Dumper 的输出写入文件。
这是一个使用 Data::Dumper 打印的示例数组条目:
有没有更有效的方法来实现我的目标?
$VAR =
{
'weekday' => 'Sun',
'index' => 26417,
'timestamp' => '1316326961',
'text' => 'sys1 NSP
Test.cpp 1000
This is a example error message.
',
'errname' => 'EM_TEST',
'time' => {
'array' => [
2011,
9,
18,
'06',
22,
41
],
'stamp' => '20110918062241',
'whole' => '06:22:41',
'hour' => '06',
'sec' => 41,
'min' => 22
},
'month' => 'Sep',
'errno' => '2261703',
'dayofmonth' => 18,
'unknown2' => '1',
'unknown3' => '1',
'year' => 2011,
'unknown1' => '0',
'line' => 219154
},
谢谢!
【问题讨论】:
-
Storable 模块怎么样?
-
该数据中有 很多 冗余。如果你存储了
timestamp的值,那么你可以扔掉whole,hour,sec,min,month,dayofmonth,year等。