Пишу тут маленькую программу, в какой-то момент мне потребовалось поставить разделитель входных записей на v0 ('\0'), круто, всё работает, оператор <FH> считывает до 0 байта. Но потом мне надо было поставить всё обратно. В итоге я заимел примерно следующий код:
$/="\n";
open INFILE, "<${_[0]}" or die "ImportLite: ошибка открытия файла ${_[0]}\n";
my $str = <INFILE>;
print $str=~s/\n//g,"\n" and die;
который, вместо ожидаемого 0, выдаёт в консоль 1706 (количество строк в файле). Т.е. несмотря на $/="\n" оператор <INFILE> читает файл целиком, хотя как показывает print $str=~s/\n//g,"\n" символов перевода строки в этом файле навалом. Может кто сталкивался и сможет помочь?