Cita: while ($linea=<F>) {
while ($linea=~ s/$expr//m) {
print ":::::::::::::$1-$2-$3-$4-$5-$6-$7:::::::::::";
}
}
Porque un while dentro de otro ? eso ejecutará la expresión regular y el print 123344 por cada línea...
Deberías de hacer un solo while y dentro talvés un if print...
Talvés no te esté funcionando por los saltos de línea...
Espero que te sirva
Saludos