Perl读文件的一行之后,用chomp还是用chop把行尾的换行符去掉

2025-05-02 06:12:39
推荐回答(1个)
回答1:

一定是 chomp !

chop 是把一个字串最尾的字符去掉, 而 chomp 是只把所有能辨识到的换行符都去掉

$s = "abc\r\n";
$ss = $s; chomp $ss ; # $ss = "abc"
$ss = $s; chop $ss ; # $ss = "abc\r" 不是你想要的结果!

$s = "abc";
$ss = $s; chomp $ss; # $ss = "abc";
$ss = $s; chop $ss; # $ss = "ab"; 也不是你想要的结果!

# 只有以下一种情况 chomp 和 chop 显得没分别
$s = "abc\n"; # 或 "abc\r"
$ss = $s; chomp $ss; # $ss = "abc"
$ss = $s; chop $ss; # $ss ="abc" 这次只是走运!

不同的系统 ( Windows, iOS, Linux ) 的文本会用上不同的换行符, 有的用 \n, 有的用 \r, 有的用 \r\n. 所以, 必须用 chomp!