Perl | Gravando em um Arquivo
Um filehandle é uma variável usada para ler e gravar em um arquivo. Este filehandle fica associado ao arquivo.
Para gravar no arquivo, ele é aberto no modo de gravação conforme mostrado abaixo:
open (FH, ‘>’, “filename.txt”);
Se o arquivo já existir, ele trunca o conteúdo antigo do arquivo com o novo. Caso contrário, um novo arquivo será criado e o conteúdo será adicionado.
A função print() é usada para gravar conteúdo em um arquivo.
Sintaxe: print filehandle string
Aqui, filehandle é associado ao arquivo no momento da abertura do arquivo e a string contém o conteúdo a ser gravado no arquivo.
Exemplo :
# Opening file Hello.txt in write mode
open (fh, ">", "Hello.txt");
# Getting the string to be written
# to the file from the user
print "Enter the content to be added\n";
$a = <>;
# Writing to the file
print fh $a;
# Closing the file
close(fh) or "Couldn't close the file";
Antes de gravar no arquivo:
Executando o código para escrever:
Arquivo atualizado:
Veja como o programa funciona:
Etapa 1: Abrindo o arquivo Hello.txt no modo de gravação.
Etapa 2: Obtendo o texto do teclado de entrada padrão.
Etapa 3: Gravando a string armazenada em '$a' no arquivo apontado por filehandle 'fh'
Etapa 4: Fechando o arquivo.
Copiar conteúdo de um arquivo para outro:
Antes da execução do código:
Arquivo fonte:
Arquivo de destino:
Exemplo: o
exemplo abaixo lê o conteúdo do arquivo de origem e grava no arquivo de destino.
# Source File
$src = 'Source.txt';
# Destination File
$des = 'Destination.txt';
# open source file for reading
open(FHR, '<', $src);
# open destination file for writing
open(FHW, '>', $des);
print("Copying content from $src to $des\n");
while(<FHR>)
{
print FHW $_;
}
# Closing the filehandles
close(FHR);
close(FHW);
print "File content copied successfully!\n";
Código de execução:
Arquivo de destino atualizado:
Veja como o programa funciona: -
Etapa 1: Abrindo 2 arquivos Source.txt no modo de leitura e Destination.txt no modo de gravação.
Etapa 2: Lendo o conteúdo do FHR que é filehandle para ler o conteúdo, enquanto FHW é um filehandle para gravar o conteúdo no arquivo.
Etapa 3: Copiar o conteúdo com o uso da função de impressão.
Etapa 4: feche o conn quando terminar de ler o arquivo.
Existem duas maneiras pelas quais os erros podem ser tratados
- Lançar uma exceção se o arquivo não puder ser aberto (Tratamento de um erro)
- Dê um aviso se o arquivo não puder ser aberto e continue executando (relatório de erros)
Lance uma exceção (usando a função Die)
Quando o filehandle não pode ser atribuído a um ponteiro de arquivo válido naquele momento, o dado é executado imprimindo a mensagem e mata o programa atual.
Exemplo :
# Initializing filename
$filename = 'Hello.txt';
# $filename = 'ello.txt';
# Prints an error and exits
# if file not found
open(fh, '<', $filename) or
die "Couldn't Open file $filename";
No código acima, quando o arquivo existe, ele simplesmente é executado sem erros, mas se o arquivo não existir, ele gera um erro e o código é encerrado.
Dê um aviso (usando a função warn)
Quando o filehandle não pode ser atribuído a um ponteiro de arquivo válido, ele apenas imprime uma mensagem de aviso usando a função warn e continua em execução.
Exemplo :
# Initializing filename
$filename = 'GFG.txt';
# Opening a file and reading content
if(open(fh, '<', $filename))
{
while(<fh>)
{
print $_;
}
}
# Executes if file not found
else
{
warn "Couldn't Open a file $filename";
}
Quando o arquivo existe:
Quando o arquivo não existe:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva