Мне показалось, что этот слегка проверенный код выполняет свою работу:
my $desired = 5347;
my $char_count = 0;
while ( <$fh> ) {
$count += length;
if ( $count >= $desired ) {
print $. . $/;
last;
}
}
Конечно, предполагается, что $fh
- это уже открытый дескриптор файла, который еще не был прочитан.
Также обратите внимание, что он подсчитывает символы, а не байты, что вы и сказали, но, возможно, это не то, что вы имели в виду.