a ver si te entiendo: tienes un archivo com ser usuarios.downline en donde tienes todos los usuarios de la forma
usuario1
usuario2
usuario2
y quieres eliminar uno de esos usuarios.
para eso tienes que abrir el archivo usuarios.downtime y colocar su contenido en un @array, ahora bien, hacemos un bucle (foreach) que verifique cada uno de los elementos del array comparándolo con el usuario que quieres eliminar: Si es distinto, colocamos ese usuario en un nuevo array que tendrá los usuarios que quedan, si es igual que lo deje en el array viejo...Y lógicamente, para tenminar abrimos el archivo y guardamos el nuevo array con los usuarios que quedan.
Código:
sub delete {
my @new_registros;
open (MONOSWIM, "<$datadir/downline/$first/$sponsor.downline") || &error('abrir','archivo');
my @registros = <MONOSWIM>;
close (MONOSWIM) || &error('cerrar','archivo');
foreach my $registro (@registros){
$registro =~ s/\n//g;
if ($registro ne $usuario_a_eliminar){
push (@new_registros,$registro);
}
}
open (MONOSWIM, ">$datadir/downline/$first/$sponsor.downline") || &error('abrir','archivo');
foreach my $new_registro (@new_registros){
print MONOSWIM "$new_registro\n";
}
close (MONOSWIM) || &error('cerrar','archivo');
}
Como verás en la función open la primera palabra es solo el nombre del manejador de archivo, ahí puedes poner lo que quieras, MONOSWIM, DATABASE, CACA O CUALQUIER PALABRA y luego de la coma (,) va la dirección del archivo antecedida por la manera en la cual vas a abrir el archivo
< Solo lectura
> Lo puedes escribir desde el principio (borra todo)
>> Deja todo como está y se posiciona al final del archivo
Bueno, decime cualquier cosa que no entiendas
Saludos