• Publicidad

Poner un atributo como lista y devolverlo como lista

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

Poner un atributo como lista y devolverlo como lista

Notapor pablov » 2014-01-31 15:58 @707

Estimados, estoy en Perl y tengo un atributo de la siguiente forma.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     $self->{arrayDatos} = undef;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Donde en una función, le paso una lista para que después me devuelva la lista.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     $self->{arrayDatos}=@filas;
  2.     return $self->{arrayDatos};
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Si lo hago de esa forma no me retorna la lista, me retorna el número de datos...

En cambio, si hago esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     $self->{arrayDatos}=@filas;
  2.     return @filas};
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Si hago el retorno de la fila directamente funciona, pero no es la idea, la lógica es que me ponga el atributo como una lista...

¿En qué estaré fallando? Como soy nuevo en el lenguaje me pierdo bastante, se agradece cualquier ayuda, ¡saludos!
pablov
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2014-01-28 19:50 @868

Publicidad

Re: Poner un atributo como lista y devolverlo como lista

Notapor morago » 2014-01-31 16:24 @725

referencia el array

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $self->{arrayDatos} = \@filas;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
morago
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2009-12-13 16:43 @738

Re: Poner un atributo como lista y devolverlo como lista

Notapor explorer » 2014-01-31 16:29 @728

Las variables escalares, los elementos de los arrays y los valores de los hash, solo pueden almacenar valores escalares, así que no puedes guardar un array en un elemento de un hash.

En cambio, lo que se hace es lo mismo que se hace en C: usar punteros. Se guarda el puntero a la estructura que queremos guardar. En Perl, los punteros se llaman referencias.

Para sacar una referencia del array (o de cualquier otra variable), se usa '\', como te ha comentado morago.

Tienes toda la información en tu propio ordenador en perldoc perlref, y en la Web (traducido al español).
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

Re: Poner un atributo como lista y devolverlo como lista

Notapor pablov » 2014-01-31 16:43 @738

Muchas gracias a ambos, nunca he trabajado con punteros ya que estoy acostumbrado a los lenguajes de alto nivel (JAVA, C#, PHP, etc.).

Ahora me ha quedado claro :D.
pablov
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2014-01-28 19:50 @868

Re: Poner un atributo como lista y devolverlo como lista

Notapor explorer » 2014-01-31 19:09 @839

Perl es un lenguaje de alto nivel. A veces, demasiado alto :)

Lo que sí está claro es que Perl tiene un nivel de expresividad mucho mayor que esos otros lenguajes (dicho en plata: hay que escribir menos código para obtener el resultado).
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 11 invitados