Я следовал учебнику Perl, когда обнаружил довольно странное поведение и не мог понять, почему. В настоящее время я нахожусь на Ubuntu 18.04 и использую стандартную Perl, распространяемую с ним, версию 5.26.1, и с отключенной буферизацией вывода
$|=1;
В какой-то момент в моем сценарии я набираю
<INPUT>;
while(my $line = <INPUT>){
# chomp($line);
print "before $line after";
}
Я получаю результат
до Исаа c Ньютон, 99.10, 15051999
до Альберта Эйнштейна, 13.20, 11062012
до Карла Шила, 66.23,01012000
после Рене Декарта, 0,57,10072033
после [моего приглашения]
, раскомментировав chomp
Я получаю
после [моего приглашения ]
Для тестирования разделителя записей я заменил внутренний блок следующим образом:
<INPUT>;
while(my $line = <INPUT>){
print "blah";
print "$/";
print "blah\n";
}
и получил результат
бла
бла
бла
бла
бла
бла
бла
бла
[мое приглашение]
я не знаю почему chomp мешает печатать все, кроме того, что кажется последним «после». Кто-нибудь знает, что может происходить?