Esta es mi primera participación en un foro. Soy nuevo en el manejo de Perl, y tengo esta situación:
tengo un archivo CGI en el cual recibo por POST un texto correspondiente a un archivo .mol (donde se encuentran datos de moléculas) como este:
- Código: Seleccionar todo
MOLECULE=353;CONFORMATION=0;
21 23 0 0 0 0 0 0 0 0999 V2000
-0.3756 0.2209 0.0342 N 0 0 0 0 0 0 0 0 0 0 0 0
-0.3188 -1.2033 0.0172 C 0 0 0 0 0 0 0 0 0 0 0 0
0.9787 0.6665 0.0040 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8320 -0.4359 -0.0305 C 0 0 0 0 0 0 0 0 0 0 0 0
1.0045 -1.6117 -0.0219 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.1134 -3.4204 0.0139 N 0 0 0 0 0 0 0 0 0 0 0 0
-1.3746 -2.1217 0.0349 C 0 0 0 0 0 0 0 0 0 0 0 0
1.2594 -2.9866 -0.0436 C 0 0 0 0 0 0 0 0 0 0 0 0
3.2219 -0.2450 -0.0645 C 0 0 0 0 0 0 0 0 0 0 0 0
1.4506 1.9857 0.0065 C 0 0 0 0 0 0 0 0 0 0 0 0
0.1723 -3.8486 -0.0245 C 0 0 0 0 0 0 0 0 0 0 0 0
3.7055 1.0571 -0.0625 C 0 0 0 0 0 0 0 0 0 0 0 0
2.8264 2.1643 -0.0272 C 0 0 0 0 0 0 0 0 0 0 0 0
3.2285 3.1442 -0.0266 H 0 0 0 0 0 0
4.7503 1.2281 -0.0877 H 0 0 0 0 0 0
0.3310 -4.8956 -0.0401 H 0 0 0 0 0 0
0.7822 2.8067 0.0330 H 0 0 0 0 0 0
3.8818 -1.0729 -0.0909 H 0 0 0 0 0 0
2.2519 -3.3549 -0.0737 H 0 0 0 0 0 0
-2.3807 -1.7920 0.0649 H 0 0 0 0 0 0
-1.2234 0.8096 0.0630 H 0 0 0 0 0 0
2 1 1 0 0 0 0
3 1 1 0 0 0 0
4 3 2 0 0 0 0
5 2 2 0 0 0 0
6 7 2 0 0 0 0
7 2 1 0 0 0 0
8 5 1 0 0 0 0
9 4 1 0 0 0 0
10 3 1 0 0 0 0
11 8 2 0 0 0 0
12 13 1 0 0 0 0
13 10 2 0 0 0 0
5 4 1 0 0 0 0
9 12 2 0 0 0 0
6 11 1 0 0 0 0
13 14 1 0 0 0
12 15 1 0 0 0
11 16 1 0 0 0
10 17 1 0 0 0
9 18 1 0 0 0
8 19 1 0 0 0
7 20 1 0 0 0
1 21 1 0 0 0
M END
> <rn>
244-63-3
> <MAB_ENERGIES>
33.57 0.75 29.77 1.54 1.51 2.12 -2.12 0.00
y necesito extraer de allí las columnas correspondientes a las coordenadas X, Y y Z de los átomos que conforman la molécula, junto con el símbolo, o sea, algo así:
- Código: Seleccionar todo
-0.3756 0.2209 0.0342 N
-0.3188 -1.2033 0.0172 C
0.9787 0.6665 0.0040 C
1.8320 -0.4359 -0.0305 C
1.0045 -1.6117 -0.0219 C
-1.1134 -3.4204 0.0139 N
-1.3746 -2.1217 0.0349 C
1.2594 -2.9866 -0.0436 C
3.2219 -0.2450 -0.0645 C
1.4506 1.9857 0.0065 C
0.1723 -3.8486 -0.0245 C
3.7055 1.0571 -0.0625 C
2.8264 2.1643 -0.0272 C
3.2285 3.1442 -0.0266 H
4.7503 1.2281 -0.0877 H
0.3310 -4.8956 -0.0401 H
0.7822 2.8067 0.0330 H
3.8818 -1.0729 -0.0909 H
2.2519 -3.3549 -0.0737 H
-2.3807 -1.7920 0.0649 H
-1.2234 0.8096 0.0630 H
No tengo ni la menor idea de cómo hacerlo. Sin embargo he leído acerca de la potencia de Perl en el manejo de textos y de que se pueden usar expresiones regulares para esto.
Agradezco cualquier ayuda que me puedan brindar.