Lo siento seguramente no me he explicado nada bien.
Cita: Bueno, si necesitas calcular varias $areas correspondientes a varios conjuntos de @datos, entonces puedes hacer un bucle y cada $area la metes (push) en un array de @areas.
Si ningun problema con eso y como almacenar mis resultados. El problema es que no obtengo ningun resultado de area aun.
Cita: Además, el significado de 'global' se refiere al ámbito de actuación de una variable. No significa que su contenido sea una constante. Es la lógica de nuestro programa la que determinará si lo usamos de constante o no.
Si tambien entiendo esto. Cuando digo global me refiero al ambito de actuacion (scope) de la variable.
El problema es que no puedo pasar (o no se como) las variables que no son $x a la funcion.
Intentare explicarme. Uso el siguiente codigo para calcular la integral. Enviando una referencia de una funcion (la subrutina de mi segundo mensaje), el max i el min para inegrar.
Código:
use Math::Integral::Romberg 'integral';
my $area = integral(\&f, $imin, $imax);
Este modulo pasara SOLO diferentes valores de $x, creo, a la funcion (subrutina f) para calcular el area.
Como puedo pasar el resto de variables a mi funcion? Sin enviarlos al modulo Romberg?
Cuando solo tenia un set de datos era facil por que el ambito de @datos y $nos_datos llegaba hasta la subroutina.
Con mas de un set de datos tengo metido en un bucle esto:
for my @datos (@set_datos) { #me he inventado la linea
Código:
use Math::Integral::Romberg 'integral';
my $area = integral(\&f, $imin, $imax);
}
Esto hace que mis variables como @datos esten solo definidas dentro de este bucle. Puedo poner el codigo anterior en otra subrutina pero luego solo estaran definidas en esa misma (de aqui el primer mensaje sobre "local" pero no funciona).
He provado varias cosas para intentar que estas variables estubieran definidas dentro de la subrutina f sin tener que pasarlas pero nada.
Alguna idea?
Esto es solo un calculo entre otros que hago con estos datos.
Muchas gracias!