Windows的换行符是/r/n;
Linux的换行符是/r。
这一点明确很重要,因为如果你Linux下,读取windows下的文本文件,很可能会忽略了/r,而吃尽苦头。举个例子: 如果在windows上写Perl代码和相关配置文件,然后全部拷贝到linux上面测试。此时问题就出来了,windows上以“/r/n”结尾,而linux上以“/n”结尾。你使用perl中的chomp函数,期望去除换行符,但是在linux上只会删除/n,而/r会保留,所以配置信息中始终保留那个该死的/r,导致无法读取准确。而且,那个/r是不可见字符,十分难以发现。那个/r会使你的代码出现奇异的字符覆盖现象,不信可以试试。
这是一个十分悲剧的情况,可以使你在这你折腾几个小时。
在这里记录下来,以后提醒自己,也提醒他人。