Me han dicho que deshabilitar las referencias en perl mejora el rendimiento (siempre que no las esté utilizando), y que si no utiliza ninguna referencia posterior, perl lo hará por sí mismo.Deshabilitar las referencias en perl
ahora tengo un script de Perl con un gran número de expresiones regulares en ella y sólo uno solo utiliza una referencia hacia atrás y me gustaría saber lo siguiente:
- Dado que tengo un muy gran número de expresiones regulares (Supongamos que la mayor parte de mi tiempo de procesamiento es regex) ¿Deshabilitar las referencias anteriores significa una mejora significativa en el rendimiento? o hay criterios que puedo utilizar para saber si este es el caso?
- ¿Hay alguna manera de inhabilitar las referencias retrospectivas una vez al principio y solo volver a habilitarlas cuando las necesito (sé de
(?:
, pero no quiero tener que agregarlas a todas las agrupaciones)? - ¿El alcance permitiría que perl optimice este comportamiento de backreferencing para mí (es decir, hace un
sub
o uneval
si el cambio perl apaga el backreferencing para cosas fuera de él)?
* »suponiendo que la mayor parte de mi tiempo de procesamiento es regex« * O RLY? [Perfil] (http://p3rl.org/Devel::NYTProf) para (des) probar sus suposiciones. Apuesto a que su programa no es trivial y * no * pasará la mayor parte del tiempo en las expresiones regulares. – daxim