[Perl] matrices

aureliano aurygp@frgp.utn.edu.ar
Wed, 23 Jan 2002 15:26:50 -0800


Hola gente :)

Estoy viendo algo de codigo y probando algunas cosillas y me encuentro 
con problemas con las matrices o array bidireccionales.

$archlog = '/var/log/squid/access.log' ;
open (A, $archlog) or die "No puedo abrir $archlog, \n";

@temporal = ();
$indice = 0;

while($line = <A>){
      chomp($line);
      $line =~ s/ +/ /;
      @fields=split(/ /,$line);
      @hora = scalar localtime($fields[0]);
      @temporal = ($fields[7],$fields[2],@hora);
      foreach $cont (0..@temporal){
        $todo[$indice][$cont] = $temporal[$cont];
      }
      $indice++;
}
close A;

# Imprimo todo el contenido de la matriz 
--------------------------------------------------
foreach $x (0..@{$todo}) {
  foreach $y (0..@{$todo[$x]}) {
    print "$x $y  --> $todo[$x][$y] \n" ;
 }
}

El problema es que no imprime toda la matriz. Solo imprime los 5 
primeros registros Y:
0 0  --> emontelatici
0 1  --> 10.1.12.122
0 2  --> Thu Jan 17 19:45:51 2002
0 3  -->
0 4  -->

Ademas comprobe si  la matriz @todo esta cargada imprimiendo lineas al 
azar y parece esta bien
Ejemplo:
 print "$todo[50][0]"  # Y funciona al pelete :)

La pregunta es como harian para imprimir toda la matriz @todo.

s2,
aureliano