ここで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 の投稿を読んだ後で初めて、ループされた実際の文字列は Team 42\n であるため、chomped しないと eq が失敗することに気付きました。そのため、私の質問は他の chomp の質問とは異なります。自分のコードが chomp なしでは機能しない理由がわかりませんでしたが、誰かが私を正しい方向に向けてくれました。