Neste capítulodo tutorial Perl nós iremos ver como acrescentar informação em arquivos existentes utilizando Perl.

No episódio anterior nós aprendemos como escrever em arquivos. Isso é muito útil quando estamos criando um arquivo, mas há casos onde nós desejamos manter o arquivo original, e apenas adicionar novas linhas a ele.

O caso mais comum é quando estamos escrevendo um arquivo de histórico, ou log.

Ao escrever

open(my $fh, '>', 'report.txt') or die ...

Abrimos um arquivo para ecrita utilizando o sinal >, que irá automaticamente deletar o conteúdo do arquivo, caso haja algum.

Se nós desejamos acrescentar algo ao final do arquivo nós devemos utilizar o sinal maior do que >>, como no exemplo abaixo:

open(my $fh, '>>', 'report.txt') or die ...

Ao invocar essa função, iremos abrir o arquivo para acrescentar informações nele, isso significa que o arquivo irá permanecer intacto e qualquer coisa que for impresso pelas funções print() e say() serão acrescentadas ao final.

Veja abaixo um exemplo completo:

use strict;
use warnings;
use 5.010;

my $filename = 'report.txt';
open(my $fh, '>>', $arquivo) or die "Não foi possível abrir o arquivo '$arquivo' $!";
say $fh "Meu primeiro relatório escrito em perl";
close $fh;
say 'pronto';

Se você executar esse script várias vezes, você verá que o arquivo irá crescer. Para cada vez que for executado, será acrescentado uma nova linha ao arquivo.