Please read Markup in the Monastery as you've just made a mess of my browser window.
I'm pretty sure you don't want an if-elsif-else set here, unless you want to keep at most one value from each line. You also probably mean to have a hash of hashes of hashes structure here in place of what you are doing (perllol). The test you are performing actually checks if an index exists yet, not if the value is the array. The code you want is likely closer to:
while (<FICHEROCFG>) {
my $datos_cfg = $_;
my ($var1,$var2,$var3,$var4) = split (",", $datos_cfg);
$db{$var1}{'Entidad'}{$var2} = 1;
$db{$var1}{'Agrupacion'}{$var3} = 1;
$db{$var1}{'Operativa'}{$var4} = 1;
}
Update: And to answer your updated question, the index of the last element of @array is given by $#array. |