Perl Brasil

Pesquisar

Documentação

Artigos

Planeta

Eventos

Comunidade

r1 - 06 Aug 2006 - JoenioCosta

Como ler o conteúdo de um arquivo de uma vez

Problema

Você quer ler um arquivo inteiro e colocá-lo na memória.

Solução

@file = <FILE>;

ou

use File::Slurp;

Discussão

Antes de continuar a leitura, é importante considerar o seguinte: você tem certeza de que de precisa colocar todo o conteúdo do arquivo na memória, de uma vez?

Se isto for realmente necessário, esta é a solução que é mais frequentemente encontrada:

   open (FILE,"...") or die "...";
   @file = <FILE>;
   close FILE;

Uma solução mais eficiente, porém, é usar o módulo File::Slurp:

   use File::Slurp;

   my $text = read_file( 'filename' ) ; # scalar context
   my @lines = read_file( 'filename' ) ; # list context

O File::Slurp também permite escrever o arquivo completo de forma eficiente:

   write_file( 'filename', @lines ) ;

Comentários