• Publicidad

Imprimir elementos de un array separados por comas

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

Imprimir elementos de un array separados por comas

Notapor Statyk » 2005-06-12 06:24 @308

Buenas,

Quiero imprimir todos los elementos de un array y entre ellos meter una coma; ahora mismo estoy haciendo esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach (@array) {
  2.    print $_ , " , ";
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

El resultado es el esperado... algo más o menos así:
elemento1 , elemento2 , elemento3 ,


Es decir, después de cada elemento del array meto una coma, ¿pero cómo podría hacer para no insertar una coma después del último elemento? Es decir que quede así:
elemento1 , elemento2 , elemento3


¿Se os ocurre alguna forma?

¡Muchas gracias y saludos!
Statyk
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2005-06-05 17:12 @758

Publicidad

Notapor kidd » 2005-06-12 08:07 @380

Hola:

Podrías usar la función join de Perl:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print join ",", @array;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



SALUDOS
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Statyk » 2005-06-12 09:12 @425

Gracias, kidd; funciona perfecto ;D
Statyk
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2005-06-05 17:12 @758

Separar los elementos de un array con cualquier carácter

Notapor macgregor » 2005-06-13 05:11 @258

Hola,

Otra posibilidad que te resultará más fácil y sencilla, y que te sirve para mostrar por pantalla los elementos de todos tus array separados por un carácter o varios es la siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $"=',';
  2. print "@array1";
  3. print "@array2";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Los elementos del array1 y array2 saldrán separados por comas.

En la variable especial $" puedes poner el o los caracteres que quieras como separadores.

Esta variable contiene por defecto un espacio en blanco y cuando haces un print "@array1"; te separa por espacios los elementos.

Si modificas su valor te servirá para todos los arrays que "printes" hasta que vuelvas a modificar su valor.

Creo que el consejo de Kidd es bueno ya que soluciona el problema, pero esta otra opción es más sencilla y el código que generas es más claro y fácil de entender.

Espero que te sea útil.

Un saludo.
MACGREGOR [TM]
Avatar de Usuario
macgregor
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2004-12-09 07:32 @355
Ubicación: españa

Notapor Perl user » 2005-06-13 11:04 @503

Posiblemente la solución se vea "más clara", pero el uso de join es más eficiente, más flexible y más portable que $". Imagina que necesitas generar ciertos argumentos con una lista de elementos en varias ocasiones, ¿vas a estar cambiando $" siempre?

Nota: No siempre es recomendado utilizar las variables mágicas de Perl, de hecho ese es uno de los malos hábitos del lenguaje.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron