有谁知道是否设置 $/="\R";
会可靠地让 chomp() 做正确的事情,即删除一行中的任何行尾约定吗?
具体来说,我在 Windows 和 UNIX 上运行脚本,并且必须处理来自网络的文件,并且具有未知的行尾约定:MS-DOS、UNIX、MacOS < 9,等等。
我最近偶然发现了“\R”,但我以前没见过。我认为这是新的。嗯,比 Perl 5.006 新。 (有一阵子了。)
"\R"也声称做 Unicode 换行符。我没有办法正确地测试这个。
谢谢。
-埃里克
我很惊讶地发现 stackoverflow 中实际上有一个“换行符”标签。
最佳答案
Will setting $/='\R' allow chomp() to work correctly with most files in perl?
设置
$/
至 '\R'
将考虑两个字符的序列 "\\R"
作为换行符。设置
$/
至 "\R"
将导致关于 Unrecognized escape
的警告.\R
不是字符串,但仅在正则表达式的上下文中才有意义。但是 $/
的文档明确指出:Remember: the value of
$/
is a string, not a regex. awk has to be better for something. :-)
关于regex - 设置 $/="\R"会允许 chomp() 与 perl 中的大多数文件一起正常工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815259/