[Perl] Comparar valores en un mismo archivo
Gabriel Arenas Romero
garenrom@eljorullo.com.mx
11 Mar 2003 17:54:09 -0600
Hola:
Hay una manera mas sencilla de determinar si hay valores repetidos:
usando un arreglo asociativo
1:- definir el arreglo
my %nombre;
> Abrir archivo y meter los valores en una tabla ($name[count] = $login;),
> open (LECTOR, "$datainfo/students_creados") || die "ERROR: NO Encuentro el
> archivo 'students_creados'\n";
> while (<LECTOR>) { #PRIMER WHILE
> chomp;
> @linea = split;
> $facul = $linea[4];
> $facul =~ tr/A-Z/a-z/;
> $facult = substr($facul, 0, 3);
> if ($facult eq 'cie') {
> $login = $linea[7];
> $name[$count] = $linea[7];
> $count += 1;
2:- agregar aqui
# si el $login ya esta en el arreglo
if ( $nombre{$login}==1 ) {
print "ya esta registrado => $login \n";
$repetidos++;
} else {
# se agrega nuevo valor al arreglo
$nombre{$login} = 1;
} # fin de if
} # fin de if
> .
3.- si quieres, aquí cierra tu ciclo
> }#PRIMER WHILE
> close LECTOR1;
y eso es todo. Claro puedes adaptarlo mejor a tus necesidades.
Siento que tu otro modelo de recorrer dos veces el archivo no es
funcional.
Hasta luego
Gabriel
--
Gabriel Arenas Romero <garenrom@eljorullo.com.mx>
Express y Carga El Jorullo S.A. de C.V.