我正在编写一个日志解析器,它逐行读取日志,我有大约 100 条规则,它的工作方式如下:
if ($line =~ /blabla (field1) (field2)/)
{ do something }
else if ($line =~ /something (field1) (field2) else/)
{ do something }
但是对于一个大日志文件,将一行与这么多规则匹配可能会很慢,它会是O(n)
.
那么,对这个问题有什么建议吗?由于它不仅仅是纯字符串和通配符匹配,我不知道是否有任何我可以使用的数据结构。