我正在尝试在这里学习 Perl ,本教程在阅读一些文件后建议使用以下代码片段:
my $team_number = 42;
my $filename = 'input.txt';
open(my $fh, '<', $filename) or die "cannot open '$filename' $!";
my $found;
while(<$fh>) {
chomp;
last if($_ eq "Team $team_number");
}
die "cannot find 'Team $team_number'" if(eof $fh);
不过,我不太明白为什么我们需要 chomp。chomp 删除新行。所以在每个循环中,我们删除行尾的新行,但是为什么呢?如果您删除 chomp,该脚本确实会引发错误,但我不明白为什么。
我理解 chomping 的作用,但我不明白为什么必须匹配,因为我们已经遍历了所有行 - 为什么你需要删除新行?只有在阅读了 Kallol 的帖子后,我才意识到如果不切碎 eq 会失败,因为循环的实际字符串是 Team 42\n。这就是为什么我的问题与其他 chomp 问题不同的原因:我不知道为什么我的代码在没有 chomp 的情况下无法正常工作,并且有人为我指明了正确的方向。