2012-10-11 34 views
5

Por favor, tengo la siguiente línea de código para escribir el encabezado de un archivo, pero me gustaría imprimir cada elemento de la matriz @ orden dos veces de lado a lado. Por ejemplo: $ 1 $ 1 $ 2 $ 2 $ 3 $ 3 ... de forma que tendría cada par de columnas de mi archivo de salida con el mismo nombre.¿Cómo puedo imprimir los elementos de una matriz repetidos dos veces uno al lado del otro?

print(join("\t", "Case_ID", "State", "Ind", "DoB", @order) . "\n"); 

¿Puedo hacer algo simple o tengo que recorrer la matriz para repetir los elementos antes de imprimir?

Gracias!

+0

Por definición, tiene necesariamente al bucle. Sin embargo, tienes muchas opciones en cuanto a cómo bucleas. – ikegami

+0

podría usar el multiplicador de cadenas? '" $ _ "x 2' – squiguy

Respuesta

7

Tienes que bucle de todos modos, pero se puede usar un mapa para la elegancia sintáctica:

# map { $_, $_ } @order 


print join("\t", "Case_ID", "State", "Ind", "DoB", map { $_, $_ } @order)) 
     . "\n"; 
+0

¡Perfecto! ¡Gracias! – vitor

Cuestiones relacionadas