Módulo FileHandle em Perl

Modulo Filehandle Em Perl



Existem várias maneiras em Perl para criar e acessar os arquivos. Um arquivo pode ser aberto para leitura, gravação ou atualização em Perl usando um manipulador de arquivos. O manipulador de arquivo pode ser usado no método open() em um formato de programação estruturada ou formato de programação orientada a objetos. O módulo FileHandle pode ser usado em Perl para declarar o manipulador de arquivo como um objeto e usar este objeto para abrir um arquivo para criar ou acessar usando diferentes propriedades e métodos da classe “FileHandle”. Os usos de alguns métodos comuns do módulo FileHandle e os métodos de uso do módulo FileHandle para trabalhar com o arquivo em Perl são mostrados neste tutorial.

Alguns métodos úteis de FileHandle

Alguns métodos comumente usados ​​do módulo FileHandle são os seguintes:

Método Propósito
dizer É usado para contar o tamanho do arquivo em bytes.
obter É usado para ler cada caractere do conteúdo do arquivo.
procurar É usado para mover o ponteiro do arquivo para uma posição específica.
eof Indica o final do arquivo.
fechar É usado para fechar o manipulador de arquivos definido anteriormente.

Exemplos de FileHandle Perl

Diferentes usos do módulo FileHandle são mostrados nesta parte do tutorial usando vários exemplos.







Exemplo 1: Crie um novo arquivo

Crie um arquivo Perl com o seguinte script que cria um novo arquivo usando o módulo FileHandle. Um nome de arquivo é obtido do usuário e verificado se ele existe ou não. Caso o arquivo não exista, o arquivo é aberto para escrita criando um objeto da classe “FileHandle” após aguardar 1 segundo.



#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;
usar FileHandle ;

#Pegue o nome do arquivo do usuário para criar
imprimir 'Digite o nome do arquivo:' ;
meu $ f = <>;
mastigar ( $f ) ;

#Verifique se o arquivo já existe ou não
se ( -e $f )
{
#Imprime uma mensagem se o arquivo existir
dizer 'O arquivo já existe.' ;
}

outro

{
#Criar objeto manipulador de arquivo
meu $FileHandler = FileHandle- > novo ;
dizer 'Escrevendo no arquivo...' ;
#Espere 1 segundo
dormir ( 1 ) ;

#Abra o arquivo para escrita
se ( $FileHandler- > abrir ( '>$f' ) )
{
#Escreva uma linha de texto no arquivo
imprimir $FileHandler 'É uma mensagem de teste. \n É a segunda linha. \n ' ;
#Feche o manipulador de arquivos
$FileHandler- > fechar ;
}

}

Saída:



De acordo com a saída, o arquivo “test.txt” não existia antes e este arquivo é criado com duas linhas de texto. Em seguida, o comando “cat” é executado para verificar se o arquivo foi criado com sucesso com o conteúdo ou não:





  p1-1

O script é executado novamente com o mesmo valor de entrada e a mensagem “Arquivo já existe” é impressa aqui porque o arquivo “test.txt” foi criado antes.



  p1-2

Exemplo 2: Leia o conteúdo do arquivo

Crie um arquivo Perl com o seguinte script que lê o conteúdo de um arquivo usando a classe “FileHandle” se o arquivo existir. O nome do arquivo é obtido do usuário.

#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;
usar FileHandle ;

#Pegue o nome do arquivo do usuário para criar
meu $ f = <>;
meu $ f = ;
mastigar ( $f ) ;

#Verifique se o arquivo já existe ou não
se ( -e $f )
{
#Abra o arquivo para leitura
meu $FileHandler = FileHandle- > novo ( '<$f' ) ;
#Imprime o conteúdo do arquivo
imprimir < $FileHandler >;
#Feche o manipulador de arquivos
fechar $FileHandler ;
}

Saída:

O conteúdo do arquivo “test.txt” é impresso na saída porque existe no local atual:

  p2

Exemplo 3: anexar um conteúdo a um arquivo

Crie um arquivo Perl com o script a seguir que anexa o conteúdo a um arquivo não vazio e imprima o tamanho do arquivo em bytes. O nome do arquivo é obtido do usuário. Se o arquivo existir e contiver os dados, uma linha de texto será adicionada ao final do arquivo. Caso contrário, uma mensagem será impressa.

#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;
usar FileHandle ;

#Pegue o nome do arquivo do usuário para criar
imprimir 'Digite o nome do arquivo:' ;
meu $ f = <>;
mastigar ( $f ) ;

#Verifique se o arquivo já existe e não está vazio ou não
se ( -s$f )
{


meu $FileHandler = FileHandle- > novo ( ' >> $f' ) ;
#Imprime o tamanho do arquivo
imprimir 'O tamanho do arquivo é' . $FileHandler- > dizer. ' bytes. \n ' ;
dizer 'Anexando conteúdo ao arquivo...' ;
#Espere 1 segundo
dormir ( 1 ) ;

#Escreva o conteúdo no final do arquivo
imprimir $FileHandler “É uma nova linha. \n ' ;
#Feche o manipulador de arquivos
$FileHandler- > fechar ;
}
outro
{
dizer 'Arquivo não existe.' ;
}

Saída:

De acordo com a saída, uma nova linha é anexada ao arquivo “test.txt” e o tamanho do arquivo é de 45 bytes. Em seguida, o comando “cat” é executado para verificar se o conteúdo foi adicionado corretamente ao arquivo ou não:

  p3-1

Conclusão


O módulo FileHandle é uma das opções do Perl para ler, escrever ou anexar os arquivos. Três usos diferentes deste módulo são mostrados neste tutorial usando exemplos simples.