• Publicidad

Redirigir la salida de print a un array

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

Redirigir la salida de print a un array

Notapor Arianss90 » 2016-08-31 05:47 @282

¡Muy buenas! Soy nuevo en el foro, aunque llevo un tiempo leyendo respuestas para resolver alguna duda puntual que me haya podido surgir. Llevo muy poco tiempo programando en Perl y mi base de programación tampoco es demasiado potente.

Necesito guardar el string entero que está imprimiendo (necesito que imprima también) para poderlo recuperar más adelante.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.        
  2. if ( @lines1 eq @lines2 ) {
  3.  
  4.     for ( $i = 0; $i < @lines1; $i++ ) {
  5.  
  6.         my @var1 = split( /\s+/, $lines1[$i] );
  7.         my @var2 = split( /\s+/, $lines2[$i] );
  8.  
  9.         if ( $var1[ $_[0] ] eq $var2[ $_[0] ] ) {
  10.             print "Line #" . ( $i + 1 ) . " is equal in both documents\n";
  11.         }
  12.  
  13.         else {                                 #NECESITO GUARDAR ESTOS DOS PRINTS PARA PODERLOS MANIPULAR POSTERIORMENTE
  14.             print "\nLine #" . ( $i + 1 ) . " is different between documents\n";
  15.             print "This is the value from file 1: '"
  16.                 . $var1[ $_[0] ]
  17.                 . "' and this is the value from file 2: '"
  18.                 . $var2[ $_[0] ] . "'\n\n";
  19.         }
  20.     }
  21. }
  22. else {                                         #NECESITO GUARDAR ESTOS 3 PRINTS PARA PODERLOS MANIPULAR POSTERIORMENTE
  23.     print "The number of lines in each file do not match.\n";
  24.     print "\n\nTotal number of lines in file 1: " . @lines1 . "\n";
  25.     print "Total number of lines in file 2: " . @lines2 . "\n\n";
  26. }
  27.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Espero haber creado el mensaje de forma correcta, ¡¡es mi primera vez!!
¡Un saludo y muchas gracias de antemano!
Arianss90
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2016-08-31 05:25 @267

Publicidad

Re: Redirigir la salida de print a un array

Notapor explorer » 2016-08-31 15:08 @672

Bienvenido a los foros de Perl en Español, Arianss90.

Un detalle antes. En la línea 2 estás haciendo una comparación alfanumérica entre los dos números resultantes de las cantidades de elementos de los array @lines1 y @lines2. En este caso, es mejor usar el comparador numérico '=='.

Lo que puedes hacer es guardar el valor de $var1[ $_[0] ] en un array, y lo mismo para $var2[ $_[0] ]. Algo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.             push @lineas_distintas_1, $var1[ $_[0] ];
  2.             push @lineas_distintas_2, $var2[ $_[0] ];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Luego, con otro bucle, puedes recorrerles, igual que haces con @lines1.
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: Redirigir la salida de print a un array

Notapor Arianss90 » 2016-09-02 05:20 @263

Entiendo, ¡así lo haré! Gracias por la ayuda, un saludo.
Arianss90
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2016-08-31 05:25 @267


Volver a Básico

¿Quién está conectado?

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