【发布时间】:2017-11-20 13:27:05
【问题描述】:
我正在尝试读取如下所示的文件:
> SOME HEADER
ABCDEFGHIJKLMNOP
QRSTUPWXYZ123456
我需要能够读取字符 A、B、C、D 等。每个字符,所以我使用这个循环:
while (read $file, my $char, 1){
print $char;
print $.;
print "\n\n";
}
但问题是,我需要跳过“某些标题”。我需要跳过它不是因为它是第一行,而是基于有一个“> SOME HEADER”子字符串。
打印$。总是输出“6”,即使它不是正确的行号。
【问题讨论】:
-
显然,您需要保留一个缓冲区并检查该子字符串,然后将其丢弃(清除缓冲区)。或者——逐行读取,检查子字符串并跳过,或者如果你需要的话,用字符逐行处理字符串......那么,你为什么要按字符读取?你需要做什么?
-
$.variable 不适用于read
标签: perl file parsing character