El 20/08/07, Ramona Modroiu <ramona(a)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.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>