Using perl Syntax Highlighting
(open (FICHEROCFG, "<$fichero_cfg") or die "No se puede abrir el fichero de configuracion de transacciones $fichero_cfg!!\n";
while ($linea=<FICHEROCFG>) {
($var1,$var2,$var3,$var4) = split (",", $linea);
$indice = $#{$db{$var1}} + 1;
$db{$var1}{'counter'} = '';
$db{$var1}[$indice]{'Entidad'} = $var2;
$db{$var1}[$indice]{'Agrupacion'} = $var3;
$db{$var1}[$indice]{'Transaccion'} = $var4;
}
while (($data_contador, $data_cod_entidad, $data_cod_agr, $data_cod_operacion) = $sth1_do->fetchrow_array) {
foreach $cn_nombre (keys (%db)) {
foreach $cn_indice (0..$#{ $db{$cn_nombre}} ) {
if ($db{$cn_nombre}[$cn_indice]{'Entidad'} == $data_cod_entidad and $db{$cn_nombre}[$cn_indice]{'Agrupacion'} == $data_cod_agr) {
$db{$cn_nombre}{'contador'} = $rsv_contador++;
}
else {
next;
}
}
}
}
while ($linea=<FICHEROCFG>) {
($var1,$var2,$var3,$var4) = split (",", $linea);
$indice = $#{$db{$var1}} + 1;
$db{$var1}{'counter'} = '';
$db{$var1}[$indice]{'Entidad'} = $var2;
$db{$var1}[$indice]{'Agrupacion'} = $var3;
$db{$var1}[$indice]{'Transaccion'} = $var4;
}
while (($data_contador, $data_cod_entidad, $data_cod_agr, $data_cod_operacion) = $sth1_do->fetchrow_array) {
foreach $cn_nombre (keys (%db)) {
foreach $cn_indice (0..$#{ $db{$cn_nombre}} ) {
if ($db{$cn_nombre}[$cn_indice]{'Entidad'} == $data_cod_entidad and $db{$cn_nombre}[$cn_indice]{'Agrupacion'} == $data_cod_agr) {
$db{$cn_nombre}{'contador'} = $rsv_contador++;
}
else {
next;
}
}
}
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
El compilador me dice que en la línea
Using perl Syntax Highlighting
Lo que estoy leyendo es información de un fichero de este estilo:
- Código: Seleccionar todo
NOMBRE1,01,02,04
NOMBRE1,02,03,04
NOMBRE2,03,05,04
NOMBRE2,05,06,04
Para que me vaya metiendo en un hash lo siguiente:
Nombre encontrado, un array con los siguientes datos: 01,02,04 (y los que, aunque siendo números diferentes, tengan el mismo nombre, como diferentes maneras de llamar a los mismo) y que cada vez que lo encuentre, me cuente uno para saber, cuántos tengo de cada uno.
Y las preguntas son:
1) ¿Por qué me los saca en el orden de Entidad, contador, transacción y Agrupación si los tengo colocados en otro orden? (mera pijada y/o curiosidad)
2) Si en vez de poner lo que os he puesto más arriba, sustituyo la siguiente línea:
Using perl Syntax Highlighting
por
Using perl Syntax Highlighting
$db{$cn_nombre}[$cn_indice]{'contador'} = $rsv_contador++;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
me funciona pero me cuenta demasiados registros:
Using perl Syntax Highlighting
$VAR3 = 'NOMBRE1';
$VAR4 = [
{
'Entidad' => 283,
'contador' => 8986,
'Transaccion' => '04
',
'Agrupacion' => 24
}
];
$VAR5 = 'NOMBRE2;
$VAR6 = [
{
'Entidad' => '01',
'contador' => 9018,
'Transaccion' => '04
',
'Agrupacion' => '01'
},
{
'Entidad' => '01',
'contador' => 6487,
'Transaccion' => '04
',
'Agrupacion' => 23
},
{
'Entidad' => '01',
'contador' => 8987,
'Transaccion' => '04
',
'Agrupacion' => 25
}
];
$VAR4 = [
{
'Entidad' => 283,
'contador' => 8986,
'Transaccion' => '04
',
'Agrupacion' => 24
}
];
$VAR5 = 'NOMBRE2;
$VAR6 = [
{
'Entidad' => '01',
'contador' => 9018,
'Transaccion' => '04
',
'Agrupacion' => '01'
},
{
'Entidad' => '01',
'contador' => 6487,
'Transaccion' => '04
',
'Agrupacion' => 23
},
{
'Entidad' => '01',
'contador' => 8987,
'Transaccion' => '04
',
'Agrupacion' => 25
}
];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Curioso, ¿verdad?
¡Gracias!