• Publicidad

Usar foreach y push

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Usar foreach y push

Notapor danimera » 2010-10-20 14:54 @663

¿Por qué cuando tengo este código?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    foreach my $num($pg->{numbers_of_set}) {
        push(@loop_data, $num);
        }

    push(@loop_data, "4");
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


el dumper me arroja esto.
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = [
  1,
  2,
  3
];
$VAR2 = '4';
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Algo similar me pasa cuando quiero agregar hash:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# $pg->{numbers_of_set} = [1,2,3]; esta variable solo tiene 3
    foreach my $num($pg->{numbers_of_set}) {
     my %row_data;  # get a fresh hash for the row data
        $row_data{NUMBER} = $num;
        push(@loop_data, \%row_data);
   }

     push(@loop_data, {NUMBER => '4'});
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = {
  'NUMBER' => [
    1,
    2,
    3
  ]
};
$VAR2 = {
  'NUMBER' => '4'
};
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Bueno, lo que deseo es que cada elemento del array contenga un hash.

[{NUMBER => '1'},{NUMBER => '2'}] etc...

Dumper de $pg->{numbers_of_set}:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = [
  1,
  2,
  3
];
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Re: usar foreach y push

Notapor danimera » 2010-10-20 15:38 @693

Ya vi cual es el problema.

Resulta que estaba usando el módulo Data::Pagination y obtenía la variable $pg->{numbers_of_set} pero cuando hacía el foreach():

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 foreach my $num($pg->{numbers_of_set}) {

     my %row_data;  # get a fresh hash for the row data

        $row_data{NUMBER} = $num->[1];

        #return "<pre>". $num; #este $num es array
        #push(@loop_data, \%row_data);

        }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me di cuenta que $num es un array... entonces creo que quizás por eso era... ^^
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados