Claro, el problema es que mi fichero no es csv. ;)<br><br>Me gusta lo de los pasos, jajajjaa.<br>
paso 1:<br><div style="margin-left: 40px;">
while (&lt;&gt;) {<br>
    @campos = split( /:/, $_ );<br>
    if ( $campos[0] =~ /^&lt;RECORD/ ) {<br>
    }<br>
    elsif ( $campos[0] =~ /^(\w)+\s(\w)+/ ) {<br>
        $hash{ $campos[0] }++;<br>
        $orden{ $campos[0] } ||= $.;<br>
    }<br>
    elsif ( $campos[0] =~ /^(\w)+/ ) {<br>
        $hash{ $campos[0] }++;<br>
        $orden{ $campos[0] } ||= $.;<br>
    }<br>
    else {<br>
    }<br>
}<br>
foreach ( sort { $orden{$a} &lt;=&gt; $orden{$b} } keys %orden ) {<br>
    print &quot;$_ = $hash{$_}\n&quot;;<br>
}<br></div>Me dice el nombre del campo y su posición, con lo cual ahora solo puedo tirar por la vía larga y hacer el paso 2 así:<br><div style="margin-left: 40px;">if ( $_ =~ /^&lt;RECORD/ ) {<br>        my $registro = $_;<br>
        $registro =~ s/^&lt;RECORD ([0-9]+)&gt;/$1/;<br>        chop($registro);<br>        print &quot;$registro\t&quot;;<br>    }<br>    elsif ( $_ =~ /^Accession number/ ) {<br>        my $acn = $_;<br>        $acn =~ s/^Accession number://;<br>
        chop($acn);<br>        print &quot;$acn\t&quot;;<br>    }<br></div>Luego solo es meterlo en una sola tabla en la BD, porque no se me ocurre aun nada con los números de los autores. Pero sigo pensando que no es lo más optimo, por eso me estaba leyendo lo de las librerías que antes mencione.<br>