El problema que tengo es que no sé por qué razón el programa no entra al while() que lee un archivo de texto.
Mi código es el siguiente:
Using perl Syntax Highlighting
- my @titulo;
- for(my $t=0; $t<$close;$t++){
- my $destructinador=$outputs_R[$t];
- next if ! -f $destructinador;
- my $armainador=$nombres_R[$t];
- open(DERECHO, "$destructinador")|| die "Error al abrir DERECHO $destructinador: $!\n \n";
- open(IZQUIERDO, "$opts{o}/$armainador")|| die "Error al abrir IZQUIERDO $armainador: $!\n \n";
- open(COMPLETO, ">$opts{o}/$armainador")|| die "Error al abrir COMPLETO $armainador: $!\n \n";
- my $w=0;
- while(<DERECHO>){
- chomp;
- my $termino=substr($_, 0, 1);
- if($termino=~'>'){
- $titulo[$w]=substr($_, 0, 18);
- $w++;
- }
- }
- close(DERECHO);
- my $aviso=0;
- my $far=scalar(@titulo);
- my $foto;
- while(<IZQUIERDO>){
- print "\nIZQUIERDO\n";
- chomp;
- START:
- for(my $q=0;$q<$far;$q++){
- if((substr($_, 0, 18)) eq $titulo[$q]){
- $foto=substr($_, 0, 18);
- $aviso=1;
- next;
- }
- }
- if($aviso==0){
- print COMPLETO "$_\n";
- }
- if($aviso==1){
- while(<DERECHO>){
- }
- $aviso=2;
- }
- if($aviso==2){
- my $sustrato=substr($_, 0, 1);
- if($sustrato=~'>'){
- $aviso=3;
- }
- }
- if($aviso==3){
- $aviso=0;
- goto START;
- }
- }
- close(IZQUIERDO);
- open(DERECHO, "$destructinador")|| die "Error al abrir DERECHO $destructinador: $!\n \n";
- while(<DERECHO>){
- chomp;
- print COMPLETO "$_\n";
- }
- close(DERECHO);
- close(COMPLETO);
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Pero a la hora de correrlo no entra al while() de IZQUIERDO; lo sé, porque además de que no hace lo que debe de hacer, no imprime la palabra "IZQUIERDO" en la pantalla.
Espero me puedan ayudar. Si necesitan más detalles pregúntenme.
P.D. Tampoco me indica algún error al abrir IZQUIERDO.