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:
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.
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/perlusar 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:
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/perlusar 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:
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.