A la final logre que funcionara colocando la estructura de control de esta manera. Nose porque de la otra forma no funciono, simpre dejaba los valores fijos en el primer bucle.
Código:
foreach $linea (@registros){
foreach $linea2 (@reg) {
if (substr($linea,0,10) eq substr($linea2,0,10) && substr($linea,11,14) eq substr($linea2,11,14)){
print OUT "$linea2";
}
}
}