我正在尝试读取带有名称和地址的文件.它可能看起来像这样:
John Doe
123 Main Street
My Town, US 12345
Ralph Kramden
c/o Joe
999 North Lane
YourTown, US 22839
Run Code Online (Sandbox Code Playgroud)
记录之间总是有一条线.但我不知道如何告诉Perl接下来的X行都是一条记录.(而X可以变化).
怎么办?
Chr*_*utz 14
$/
输入记录分隔符,默认为换行符.这影响了Perl关于"线"是什么的想法.像awk的RS变量一样工作,包括将空行设置为终止符(如果设置为空字符串).(空行不能包含任何空格或制表符.)您可以将其设置为多字符字符串以匹配多字符终结符,或者设置为"undef"以读取文件末尾.将其设置为"\n \n"意味着与设置为""略有不同,如果文件包含连续的空行.设置为""会将两个或多个连续的空行视为一个空行.设置为"\n \n"将盲目地假设下一个输入字符属于下一段,即使它是换行符.(助记符:/在引用诗歌时划分界线.)
试试这个:
{
open my $fh, "<", $input_file;
local $/ = "";
while(<$fh>) {
# each loop, $_ will be a different record
# the first will be "John Doe\n123 Main Street\nMy Town, US 12345\n\n"
# etc.
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5400 次 |
最近记录: |