Para empezar soy un manos de árbol y muy amenudo cuando escribo opciones o parámetros en algun programa, comando o script… fallo. Muchas veces pongo mas letras delante o detrás, es lo que tiene no haber hecho mecanografía nunca.

Así que en lo que estoy escribiendo para el SoC cuando, la lista de parámetros está establecida, con solo una línea más de código podemos hacer que algún fallo de esos pase desapercibido.

$control=$&  if ($control =~ /required|requisite|sufficient|optional/);

rrequired, requisitelhjlkjhkjl,sssflojkjsufficient … entrarían.

Si se me ocurre una manera que no sea muy pesada de admitir caracteres extraños en medio ya lo diré. Pero de la manera que he intentado hacerlo es demasiado código para inlcuirlo, si fuese extremadamente crítico si que se podía emplear, pero si no lo es no merece la pena, y así tienes algunos ciclos de reloj para tu Seti@home o tu boing preferido.

Al menos en perl es extremadamente simple. El motor de expresiones regulares de perl, tiene las backreferences,  que son una serie de variables especiales con las que podemos hacer referencia a partes de las expresiones analizadas, una de estas variables es $& que refiere al “acierto”.

No es la panacea, pero supongo que a alguien le acabará ahorrando algún error.