换行符在perl中被视为空格吗

换行符在perl中被视为空格吗,perl,Perl,考虑一下这个perl单行程序 perl -e "$\=qq{\n};$/=qq{ };while(<>){print;}" "perl.txt" > perlMod.txt perlMod.txt的内容包括 a b c perlMod.txt的十六进制内容如下 61200D0A620D0A630D0A 请注意,我已将空格指定为输入记录分隔符,“\n”指定为默认的输出记录分隔符。我希望在b之后有两个'0D0A's(十六进制62)。一个0D0A是b之后的新行。另一个0D0A属

考虑一下这个perl单行程序

perl -e "$\=qq{\n};$/=qq{ };while(<>){print;}" "perl.txt" > perlMod.txt
perlMod.txt的内容包括

a
b
c
perlMod.txt的十六进制内容如下

61200D0A620D0A630D0A
请注意,我已将空格指定为输入记录分隔符,“\n”指定为默认的输出记录分隔符。我希望在b之后有两个'0D0A's(十六进制62)。一个0D0A是b之后的新行。另一个0D0A属于输出记录分隔符。为什么只有一个0D0A。

您似乎认为即使更改了输入记录分隔符,
仍将停止换行读取


您的输入包含
61 20 62 0D 0A 63
a␠B␍␊c

第一次读取读取
a␠

您可以打印
a␠
为此,添加了
$\
,给
一个␠␊
然后
:crlf
进行翻译,给出一个␠␍␊

文件中没有其他空格,因此第二次读取将读取文件的其余部分:
b␍␊c

然后
:crlf
进行翻译,给出
b␊c

您可以打印
b␊c

为此,添加了
$\
,给出了
b␊C␊
然后
:crlf
进行翻译,给出
b␍␊C␍␊

因此,总的来说,您得到了
a␠␍␊B␍␊C␍␊
61 20 0D 0A 62 0D 0A 63 0D 0A

您似乎认为即使更改了输入记录分隔符,
仍将停止换行读取


您的输入包含
61 20 62 0D 0A 63
a␠B␍␊c

第一次读取读取
a␠

您可以打印
a␠
为此,添加了
$\
,给
一个␠␊
然后
:crlf
进行翻译,给出一个␠␍␊

文件中没有其他空格,因此第二次读取将读取文件的其余部分:
b␍␊c

然后
:crlf
进行翻译,给出
b␊c

您可以打印
b␊c

为此,添加了
$\
,给出了
b␊C␊
然后
:crlf
进行翻译,给出
b␍␊C␍␊

因此,总的来说,您得到了
a␠␍␊B␍␊C␍␊,或
61 20 0D 0A 62 0D 0A 63 0D 0A

是。虽然我改变了输入记录分隔符,但我想我会在新行停止阅读。这也意味着,如果我将$/设置为空格以逐字阅读,我将不得不担心“一行结束的单词\n下一行第一个单词”会被算作“单词”。谢谢你指出这个。是的。虽然我改变了输入记录分隔符,但我想我会在新行停止阅读。这也意味着,如果我将$/设置为空格以逐字阅读,我将不得不担心“一行结束的单词\n下一行第一个单词”会被算作“单词”。谢谢你指出这一点。
61200D0A620D0A630D0A