[Cascavel-pm] Res: Leiitura de arquivos
Otávio Fernandes
otaviof em gmail.com
Domingo Abril 18 20:50:25 PDT 2010
2010/4/19 Leonardo Gerheim <general_andrade em yahoo.com.br>:
> Olá Otávio;
>
> Obraigado pela dica, mas talvez eu tenha me espressado mal. Eu já sabia
> imprimir um arquivo sem passá-lo para um array, mas o que preciso é de algo
> como:
>
> open(FILE, em ARGV[0]);
>
> print FILE[15]; # IMPRIMIR A DÉCIMA QUINTA LINHA DE UM ARQUIVO QUE NÃO É UM
> ARRAY;
>
> um abraço;
Leonardo,
Se você quer imprimir a décima quinta linha de um arquivo, sem tê-lo carregado
em um array, existem _basicamente_ duas formas:
1) Você faz um contador para encontrar a linha desejada;
2) Você usa o método seek: http://perldoc.perl.org/functions/seek.html;
A primeira opção me parece o mais indicado. Vou dar um exemplo:
#!/usr/bin/env perl
use strict;
use warnings;
my $counter = 0;
open( my $FH, '<', '/etc/passwd' )
or die $!;
while ( my $line = <$FH> ) {
$counter++;
next if ( $counter < 15 );
print $line;
last;
}
close($FH);
__END__
Agora, como em Perl sempre tem mais de uma maneira de fazer, segue:
#!/usr/bin/env perl
use strict;
use warnings;
my $counter = 0;
open( my $FH, '<', '/etc/passwd' )
or die $!;
print( (<$FH>)[14] );
close($FH);
__END__
um abraço,
--
Otávio Fernandes
otaviof at ( gmail.com, cpan.org )
http://blog.emresumo.com/
Mais detalhes sobre a lista de discussão Cascavel-pm