Amigos perleros,
Tengo el siguiente problema.. Estoy leyendo un archivo que tiene las siguientes características
Using text Syntax Highlighting
ATOM 1 N GLU A 125 14.581 13.195 3.479 1.00 22.25 N
ATOM 2 CA GLU A 125 14.496 14.621 3.901 1.00 20.31 C
ATOM 3 C GLU B 126 14.969 14.841 5.327 1.00 19.84 C
ATOM 4 O GLU B 126 14.624 14.071 6.225 1.00 23.21 O
ATOM 5 CB GLU B 126 13.765 15.508 2.985 1.00 21.39 C
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
La quinta columna es la que me interesa y tiene muchas repeticiones de letras en orden como A, B, C, D. Yo solo quiero que me quede una de cada repetición.
Entonces hice el siguiente código:
Using perl Syntax Highlighting
open( TEMP, "miarchivo" );
my $salida = "Lista";
open( SALIDA, ">$salida" )
|| die "ERROR: No puedo abrir el fichero $salida\n";
my @temp_array = ();
@temp_array = <TEMP>;
close(TEMP);
my $aux = "O";
foreach my $temp_line (@temp_array) {
if ( $temp_line =~ /^ATOM/ ) {
my @temp_line2 = split( " ", $temp_line );
my $Chain_ID = $temp_line2[4];
$Chain_ID = substr( $Chain_ID, $Chain_ID, 1 )
; #para quedarme solo con el primer valor de ese campo, o sea A, B, C,..., N
if ( $Chain_ID ne $aux ) {
print $Chain_ID. "\n";
$some_dir =~ s/pdb//g;
$some_dir =~ s/.ent//g;
print SALIDA $some_dir . "_" . $Chain_ID . "\n";
}
$aux = $Chain_ID;
}
}
close(SALIDA);
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
El tema es que me da un error que dice lo siguiente:
Argument "A" isn't numeric in substr at ListMaker.pl line 22.
Line 22 seria la línea que tiene el substr()Argument "B" isn't numeric in substr at ListMaker.pl line 22.
¿Alguien tiene idea de por qué? ¿Se les ocurre una mejor idea de cómo hacer eso que intento hacer?
Gracias desde ya,
Gonzalo