Este hermoso codigo nos sirve para capturar todos los parametros que se nos hayan enviado por el request, a mi me es muy util cuando utilizo formas dinamicas y en realidad no sabes exactamente cuantos parametros vas a recibir... obviamente debes tener tu forma de identificarlos.
use strict;
use Apache2::RequestUtil ();
use Apache2::Request;
my $r = Apache2::RequestUtil->request;
my $query = Apache2::Request->new($r);
## aqui capturamos los parametros en el hash args
my %args = map {$_ => $query->param($_) } $query->param;
## si quieres ver lo que has recibido puedes hacer esta mariguanada:
print join "\n", map {"$_ => $args{$_}" } keys %args;
## o mejor aun, de uno en uno para hacer operaciones sobre cada uno
## validando antes de enviar a db por ejemplo:
foreach my $parametro(sort(keys %args))
{
print $parametro."=>".$args{$parametro}."\n";
}
Si estas utilizando catalyst puedes hacer algo similar con $c->request->params
my @params = %{$c->request->params};
## aqui se recibe un arreglo donde el primer elemento
## es el parametro y el segundo su valor
## tal vez pueda mejorarse utilizando
## directamente el hash como el programa de arriba, por lo
## pronto la solución piratona quedó asi:
for(my $i=0;$i<=$#params;$i++) {
if($i % 2)
{
## entran solo impares
my $idParametro= $params[$i - 1];
my $valor= $params[$i];
print "$idParametro => $valor";
}
}
Hermoso!! no ??