El 20/08/07, Ramona Modroiu ramona@openser.org escribió:
Un ejemplo de codigo seria lo siguiente:
if(avp_check("$fU", "eq/xxx9/i")) { ... } else if(avp_check("$fU", "re/^xxx[0-8]$/i")) { ... }
En openser 1.2.x:
if($fU == "xxx9")) { ... } else if($fU =~ "^xxx[0-8]$") { ... }
Vaya, no había caído yo en la cuenta de que también se pueden aplicar expresiones regulares sin AVP's.
Por cierto, de cara a la eficiencia ¿existe alguna diferencia entre usar AVPs de texto y variables? Quiero decir, ¿qué es más costoso computacionalmente?:
a) $avp(s:texto) = "XXXXXXXX"; if ( avp_check("$avp(s:texto)", "re/^xxx[0-8]$/i") ) { ...
b) $var(texto) = "XXXXXXXX"; if ( $var(texto) =~" ^XXX") { ...
¿O tal vez sean igual de eficientes?
En caso de que sean igualmente costosas: ¿qué sentido tienen entonces los AVP's de texto existiendo variables (las cuáles son más "digestibles")?
Y ya puestos: sé que los AVP numéricos en plan $avp(i:12) son más eficientes que los AVP de texto en plan $var(s:cadena), ya que cuesta menos referirse a un entero que a una cadena de texto. Pero, ¿no tendría sentido que en tiempo de compilación se convirtiesen los AVP de texto a AVP numéricos sin más? ya sé que existen los alias, pero sigue siendo una solución un poco "fea".
En fin, cosillas que tenía previstas preguntar algún día y aprovechando la conversación lo saco ahora... XD
Saludos.