perl -n -e "print \"$.\"" file.txt 有点不解

perl -n -e "print \"$.\"" file.txt 有点不解

file.txt 内容如下:
abc
ced
aef

在windows下运行:
perl -n -e "print \"$_\"" file.txt

为什么输出的结果
abc
ced
aef

而不是abccedaef
我没有在 print中加\n 换行符啊
难道空字符也当作是字符???
文件的每一行以\n结束
perl很诚实,它不会偷偷摸摸帮你把文件行末的\n去掉
这同时体现在qx //捕获外部命令的输出结果,它不会帮你去掉行末的\n

see

[Copy to clipboard] [ - ]
CODE:
perldoc -f chomp

想起来了,以前用行输入操作符<> 读取文件时,例如想得到每一行真实数据时候,例如第一行abc,确实chomp了的
大致应该这样把,$/是输入分隔符,而它默认\n , 分隔符仍是字符,读取的时候还是属于某一行的数据,我想是这样把
这让我想起另外一个问题,假如把$_ 改为其他的字符了,例如$_="aaa", 那么这种情况下,行输入操作符<>循环读取的不再是实际的一行一行的数据把把,而是任何两个连续的aaa之间的数据,当然后面要包括aaa,是不是这样,此时,<> 就不是严格的行输入操作符,而是2个任意的连续的输入分隔符的之间的数据的读取操作符,对么,我下去试试看