【发布时间】:2024-01-14 18:03:01
【问题描述】:
我正在使用
将文本文件读入SCALAR 变量
open FILE, "<", $filename or print("Error opening $filename");
read FILE, my $buffer, -s $filename;
close FILE;
稍后我会计算SCALAR 变量中的行数。如何在不迭代的情况下转到 SCALAR 变量中的特定行?
【问题讨论】:
-
除非你有固定宽度的线条,否则如果不通过它以某种方式进行迭代,就无法知道 X 行从哪里开始。但这似乎是XY problem;也许您应该准确解释您要达到的目标。您是否尝试替换文件中的文本位?正在搜索匹配行?删除第 n 个之后的所有行?完全不同的东西?
-
另外,您似乎完全忽略了 ikegami's advice 关于如何改进此代码的问题。
-
查找最后一行,匹配字符串,计算总行数——所有这些都是为了进一步分析代码......
-
您可以通过逐行遍历文件来完成所有这些操作,无需将整个内容读入标量。也许您在这个问题中真正想问的是,“如何从文件中获取倒数第二行?”
-
我还需要行数。
标签: perl text-files line scalar