我是一名Perl的新手,我很难编写一个能够成功解析结构化文本文件的Perl脚本。
我有一批长这样的文件:
name:
John Smith
occupation:
Electrician
date of birth:
2/6/1961
hobbies:
Boating
Camping
Fishing
等等。字段名称后面总是跟着一个冒号,与这些字段相关的所有数据总是缩进一个制表符 (\t)。
我想创建一个哈希表,可以直接将字段内容与字段名称关联起来,就像这样:
$contents{$name} = "John Smith"
$contents{$hobbies} = "Boating, Camping, Fishing"
或者类似这样的东西。
到目前为止,我已经成功将所有字段名称单独存储在哈希表中,但是我没有成功地将字段数据整理成可以很好地存储在哈希表中的形式。显然,替换/分割后跟制表符的换行符是行不通的(我尝试过,有点天真)。我还尝试了一种粗略的前瞻方法,在其中创建了一个文件的行的重复数组,并使用它来确定字段边界,但从内存消耗的角度来看,这并不是很好。
顺便说一下,目前我正在逐行处理文件,但我并不完全相信这是最佳解决方案。有没有什么简单直接的方法来进行此解析?
s/\s+//g;
删除所有额外的空格 - 它在名称中很有用!;)
- i alarmed alien