[Cascavel-pm] erro ao utilizar dois filehandles

Ednardo Lobo ednardo em elobo.cjb.net
Quarta Abril 16 19:34:36 CDT 2003


    Não percebi nada de errado! Mas não cheguei a executar!

    Quanto  ao  escopo do  FILEHANDLE,  ele  é  global, mas  limitado  à
fronteira do módulo  em que foi declarado. FILEHANDLE  em outros módulos
incluidos via 'use' possuem sua própria tabela de símbolos.

On Wed, Apr 09, 2003 at 04:05:42PM -0300, Alceu Rodrigues de Freitas Junior wrote:
> Olá lista,
>
> Abaixo  segue um  script bem  simples, mas  que não  funciona. Eu  nem
> imagino o que pode estar acontecendo de errado:
>
> --
> opendir(DIR,"$dir");
> my @dir_list = readdir(DIR);
> close(DIR);
> 
> my $file;
> 
> foreach $file(@dir_list) {
> 	next if $file eq '.';
> 	next if $file eq '..';
> 
> # lendo o arquivo
> 	open(FILE,"<$dir/$file") || die "cannot open $dir/$_: $!\n";
> 	
> 	my $file_name = $file;
> 	$file_name =~ s/\.html/\.txt/;
> 	
> 	open(SAIDA,">$dir/$file_name") || die "cannot create $dir/$file_name: $!\n";
> 	
> 	my @array;
> 	
> 	while (<FILE>) {	
> 
> # pulando coisas indesejadas	
> 		next if /^<html.*>/i;
> 		next if /^<meta.*>/i;
> 		next if /^<head.*>/i;
> 		next if /^<\/head>/i;			
> 		next if /<title>/i;
> 		next if /<body.*>/i;
> 		next if /<\/body>|<\/head>/;
> 		next if /^\n$/;
> 
> # limpando tags html
> 		s/<.*?>//g;
> 		s/<\/.*?>//g;
> #removendo espaços iniciais e finais, assim como tabulações
> 		s/^\t|\t$//;
> 		s/^\s|\t$//;
> 		next if /^\n$/;						
> 										
> 		print SAIDA "$_";
> 
> 	}	
> 	close(SAIDA);
> 	close(FILE);
> --
>
> Eu resolvi o problema usando "push (@array, $_)" dentro do loop while,
> substituindo  o "print  SAIDA "$_",  e posteriormente  imprimindo esse
> array. Só  que eu fiquei curioso  com a não impressão.  Se eu imprimir
> fora  do  loop no  filehandle  SAIDA,  funciona normalmente.  Como  eu
> declarei o  SAIDA antes do loop  while, não acho que  seja problema de
> escopo.
>
> []'s
> 
> 
> -- 
> Alceu Rodrigues de Freitas Junior
> glasswalk3r em yahoo.com.br

-- 
    Ednardo Lobo - www.elobo.cjb.net

    Por favor, evitem enviar anexos no formato MS-Office, obrigado!
    Veja: http://www.fsf.org/philosophy/no-word-attachments.pt.html



Mais detalhes sobre a lista de discussão Cascavel-pm