【发布时间】:2011-08-29 05:25:41
【问题描述】:
我是 perl 编程的新手,想了解如何使用 perl 解析文本文件。 我有一个包含不规则格式的文本文件,我想将其解析为三个。
基本上,该文件包含类似于以下的文本:
;out;asoljefsaiouerfas'pozsirt'z
mysql_query("SELECT * FROM Table WHERE (value='true') OR (value2='true') OR (value3='true') ");
1234 434 3454
4if[9put[e]9sd=09q]024s-q]3-=04i
select ta.somefield, tc.somefield
from TableA ta INNER JOIN TableC tc on tc.somefield=ta.somefield
INNER JOIN TableB tb on tb.somefield=ta.somefield
ORDER by tb.somefield
234 4536 234
列表继续使用这种格式。
所以我需要做的就是将其解析为三个。即最上面的那个,得到哈希检查。第二个是 mysql 查询,第三个是解析三个数字。出于某种原因,我不知道如何做到这一点。我使用 perl 中的 'open' 函数从文本文件中获取数据。然后我尝试对换行符使用“拆分”功能,但结果发现查询不在单行或模式中,所以我不能像我想的那样使用它。
【问题讨论】:
-
有人“设计”了这种文件格式 - 我建议你与他签订合同。
-
我认为,您的部分问题是想象您需要在解析之前读取整个文件。 Perl 有很好的工具来帮助您处理逐行处理,您可以使用这些工具来解决这个问题。 :-)