Excluindo uma linha de um arquivo enorme no Perl
Eu tenho um arquivo de texto enorme e as cinco primeiras linhas são as seguintes:
This is fist line
This is second line
This is third line
This is fourth line
This is fifth line
Agora, quero escrever algo em uma posição aleatória da terceira linha desse arquivo que substitua os caracteres nessa linha pela nova string que estou escrevendo. Eu sou capaz de conseguir isso com o código abaixo:
use strict;
use warnings;
my @pos = (0);
open my $fh, "+<", "text.txt";
while(<$fh) {
push @pos, tell($fh);
}
seek $fh , $pos[2]+1, 0;
print $fh "HELLO";
close($fh);
No entanto, não consigo descobrir com o mesmo tipo de abordagem como excluir a terceira linha inteira desse arquivo para que os textos sejam lidos abaixo:
This is fist line
This is second line
This is fourth line
This is fifth line
Não quero ler o arquivo inteiro em uma matriz, nem quero usar o Tie :: File. É possível cumprir minha exigência usando o see and tell? Uma solução será muito útil.