• Publicidad

Función me entrega hash y matriz alternadamente

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Función me entrega hash y matriz alternadamente

Notapor Emstro » 2011-03-10 13:24 @600

Hola,

Tengo la siguiente función:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub GetAddressesNotInMailList {
  2.     my $self = shift;
  3.     my $MailListID = shift;    # mandatory
  4.  
  5.     $self->{MSG} = "";
  6.     my $Addresses = undef;
  7.  
  8.     unless( defined $MailListID ) {
  9.         $self->{MSG} = "Mandatory Input Arguments are not defined";
  10.         $self->{LOG}->error("GetAddressesNotInMailList: ".$self->{MSG});
  11.     } else {
  12.         my $Members = undef;
  13.         $Members = $self->GetMembersOfMailList( $MailListID );
  14.         if( defined $Members ) {
  15.             my $num_res = keys %$Members;
  16.             $self->{MSG} = "Number of members of \"$MailListID\" mail list is $num_res";
  17.             $self->{LOG}->log("GetAddressesNotInMailList: ".$self->{MSG}) if( $DEBUGGING == 2 );
  18.             my $refAddresses = undef;
  19.             $refAddresses = $self->GetAllMailAddresses();
  20.             if( defined $refAddresses ) {
  21.                 if( $num_res > 0 ) {
  22.                     foreach my $AddressID ( keys %$refAddresses ) {
  23.                         push( @$Addresses, $AddressID ) unless( exists $Members->{$AddressID} && $Members->{$AddressID}->{EXCLUDE_FROM} eq 'N' );
  24.                     }
  25.                 } else {
  26.                     $Addresses = $refAddresses;
  27.                 }
  28.             } else {
  29.                 $self->{MSG} = "Error of getting of all mail addresses";
  30.                 $self->{LOG}->error("GetAddressesNotInMailList: ".$self->{MSG});
  31.             }
  32.         } else {
  33.             $self->{MSG} = "Error of getting of members of \"$MailListID\" mail list";
  34.             $self->{LOG}->error("GetAddressesNotInMailList: ".$self->{MSG});
  35.         }
  36.     }
  37.  
  38.     return $Addresses;
  39. }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Al hacer un dumper me entrega esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = {
          'test' => {
                      'CREATED_ON' => '2011-03-10 15:49:09',
                      'UPDATED_ON' => '2011-03-10 15:49:09',
                      'ADDRESS_NAME' => 'Eric Abarca',
                      'STATUS' => 'Active',
                      'ISI_ADDRESS_ID' => 'test',
                      'CREATED_BY' => 'eabarca',
                      'EMAIL_ADDRESS' => '[email protected]',
                      'DESCRIPTION' => '',
                      'UPDATED_BY' => 'eabarca'
                    },
          'bclinton' => {
                          'CREATED_ON' => '2010-11-30 08:51:09',
                          'UPDATED_ON' => '2010-12-15 11:30:57',
                          'ADDRESS_NAME' => 'Bill Clinton',
                          'STATUS' => 'Active',
                          'ISI_ADDRESS_ID' => 'bclinton',
                          'CREATED_BY' => 'igor',
                          'EMAIL_ADDRESS' => '[email protected]',
                          'DESCRIPTION' => '      ',
                          'UPDATED_BY' => 'igor'
                        },
          'ericabarca' => {
                            'CREATED_ON' => '2010-12-14 19:06:35',
                            'UPDATED_ON' => '2010-12-17 15:11:44',
                            'ADDRESS_NAME' => 'Eric Abarca',
                            'STATUS' => 'Active',
                            'ISI_ADDRESS_ID' => 'ericabarca',
                            'CREATED_BY' => 'eabarca',
                            'EMAIL_ADDRESS' => '[email protected]',
                            'DESCRIPTION' => 'Test    ',
                            'UPDATED_BY' => 'eabarca'
                          },
          'root' => {
                      'CREATED_ON' => '2010-11-25 11:16:12',
                      'UPDATED_ON' => '2010-12-17 15:05:06',
                      'ADDRESS_NAME' => 'Spider Man',
                      'STATUS' => 'Active',
                      'ISI_ADDRESS_ID' => 'root',
                      'CREATED_BY' => 'igor',
                      'EMAIL_ADDRESS' => '[email protected]',
                      'DESCRIPTION' => '       ',
                      'UPDATED_BY' => 'eabarca'
                    }
        };
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y después otro dumper y me da esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = [
          'test',
          'bclinton',
          'ericabarca',
          'root'
        ];
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y lo hace alternadamente, o sea, una y una.

¿A qué se deberá esto?

De antemano, gracias.
Emstro
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2010-11-08 16:12 @716

Publicidad

Re: Función me entrega hash y matriz alternadamente

Notapor explorer » 2011-03-10 14:15 @636

El tema está en la llamada a $self->GetMembersOfMailList();.

En un caso devuelve una referencia a un hash, y en otro caso, una referencia a un array.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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