gpt4 book ai didi

perl - CR vs LF perl 解析

转载 作者:行者123 更新时间:2023-12-04 16:32:19 26 4
gpt4 key购买 nike

我有一个 perl 脚本,它解析一个文本文件并将每行分解成一个数组。
当每行都由 LF 终止时,它工作正常,但当它们由 CR 终止时,我的脚本无法正确处理。
如何修改此行以解决此问题

my @allLines = split(/^/, $entireFile);

编辑:
我的文件混合了以下任一行
结束 LF 或结束 CR 它只是在以 CR 结尾时折叠所有行

最佳答案

Perl 可以使用内置的 :crlf 处理 CRLF 和 LF 行尾。 PerlIO层:

open(my $in, '<:crlf', $filename);

将自动将 CRLF 行尾转换为 LF,并保持 LF 行尾不变。但是只有 CR 的文件是个奇怪的人。如果您知道该文件仅使用 CR,那么您可以设置 $/"\r"它将逐行读取(但不会将 CR 更改为 LF)。

如果您必须处理未知行结尾的文件(甚至是单个文件中的混合行结尾),您可能需要安装 PerlIO::eol模块。然后你可以说:
open(my $in, '<:raw:eol(LF)', $filename);

它会在您读取文件时自动将 CR、CRLF 或 LF 行结尾转换为 LF。

另一种选择是设置 $/undef ,它将一口气读取整个文件。然后在 /\r\n?|\n/ 上拆分它.但这假设文件足够小以适合内存。

关于perl - CR vs LF perl 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com