Using perl Syntax Highlighting
#This array contains now all the reports names
@reports = ( @$xmlAggregations, @$xmlProjections, @$flatAggregations, @$flatProjections );
#a new hash "%newSummary" is created from "%Summary", but classifying its content per report
foreach my $key (keys @Summary ) {
###obtener $reportName a partir de $key y de @reports
$newSummary{ $reportName }{ $key } = $Summary{ $key };
}
@reports = ( @$xmlAggregations, @$xmlProjections, @$flatAggregations, @$flatProjections );
#a new hash "%newSummary" is created from "%Summary", but classifying its content per report
foreach my $key (keys @Summary ) {
###obtener $reportName a partir de $key y de @reports
$newSummary{ $reportName }{ $key } = $Summary{ $key };
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
En @reports, tengo todos los nombres posibles de reports.
En el foreach, sé que el contenido de $key será un string que empieza por alguno de los elementos de @reports.
Lo que quiero obtener, es la intersección, o sea, $reportName.
Por poner un ejemplo:
@reports = (aa, bb, cc, dd);
$key = "aaValor";
en este caso, $reportName = aa
o tambien $key = "bbContador";
en este caso, $reportName = bb;
o sea, teniendo $key, tengo que buscar en @reports y descubrir cual de sus elementos es el correcto (teniendo en cuenta que $key es la concatenación de dicho elemento con más caracteres)
En resumidas cuentas, lo que deseo es una forma sencilla (la que yo tengo pensada desde luego no lo es, pues consiste en recorrer todo @reports e ir comparando a lo bestia) de obtener $reportName.
¿A alguien se le ocurre una manera eficiente usando los comandos de Perl?
De todos modos, gracias por adelantado,
Felipe