El código
es mío, así que te respondo yo
$NUMEROS es una expresión regular. Sirve para cazar números.
Los
$1 y
$2 se refieren a los paréntesis que están dentro de la expresión regular. Como son así:
($NUMEROS) quiere decir que estamos capturando los números de los rangos indicados en el
$extracto.
Lo que hace la línea
Using perl Syntax Highlighting
$extracto=~s/($NUMEROS)\
.\
.($NUMEROS)/substr($secuencia,$1-1,$2-$1+1
)/ge;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
es: para todo lo largo (
/g) del
$extracto, buscamos dos números separados por '
..'. Cuando los encontremos, los sustituimos (
s///) por la ejecución (
/e, que te faltaba) de la instrucción
substr($secuencia,$1-1,$2-$1+1), es decir, extraemos de la $secuencia de ADN los nucleótidos que corresponden al rango de números capturados antes.
$1-1 se refiere a la primera posición de inicio del rango (en Perl, los índices dentro de cadenas empiezan en 0). Y
$2-$1+1 se refiere a la longitud que vamos a extraer (posición final - posición inicial + 1). Posición inicial y longitud son los parámetros que necesita la función
substr().
La consecuencia es que el rango de números es sustituido por la secuencia de ADN que representan.