[Perl] script q alparecer no funciona

Jose Antonio Galicia jcgalici@cbbanorte.com.mx
Tue, 25 Feb 2003 12:02:32 -0600 (CST)


On Tue, 25 Feb 2003, Ing. Ricardo Cumberbatch L. (PANNet - URC) wrote:

> while (<LECTOR>) { #PRIMER WHILE
> 	chomp;
> 	@linea = split;
> 	$name = substr($linea[0], 0, 4);

 Si vas a tomar los primero 4 caracteres de la línea, ¿para
que el chomp y el split?

> 		if ($name1 =~ /$name/i){

 ¿Eso es lo que quieres? Esto es, estas tomando los primero
4 caracteres y los compara con otros cuatro caracteres a ver
"uno esta dentro de la otra". Es, según yo, un desperdicio
de recursos. Además estas caminando más de una vez por el
mismo archivo.

 Se me ocurre así:

	open LECTOR, "uno";
	while (<LECTOR>) { #PRIMER WHILE
	  $name = uc substr($_, 0, 4);
	  $name{$name}=1;
	}
	close LECTOR;

	open LECTOR, "dos";
	open IMPRESO, ">>tres";
	while (<LECTOR>) { #SEGUNDO WHILE
	  $name = uc substr($_, 0, 4);
	  if ($name{$name}) {
	    print IMPRESO $_;
	    print $_
	  }
	}
	close LECTOR;
	close IMPRESO;

> Haber si he obviado algo y gracias

 ¿Las clases de español? :) Es "a ver".

 Saludos,
 Toño
---
Que te cases o que no te cases, siempre te pesará.