Lo que tengo es lo siguiente: Un archivo de texto XML, y una cadena de caracteres aleatoria por la cual buscar.
He probado de varias maneras y no logré que Perl me imprima la cadena aun así yo sabiendo que la misma existe en el archivo.
El script que tengo es algo así:
Using perl Syntax Highlighting
- ##!/usr/bin/perl
- print "Ingrese archivo a parsear:";
- $file = <STDIN>;
- print "Ingrese argumento de busqueda:";
- $argumento=<STDIN>;
- #$file = $ARGV[0];
- #die "\n[x] Ingrese Argumento\n\nUSO: $0 file.txt\n\n" if(!$ARGV[0]); ## si falt a el primer argumento termina el prog y describe el uso
- #
- # ## esto es un comentario xD
- # ## este es otro comentario , tengo sueñP
- #print "$file";
- open( FILE, "<$file" ) || die "[x] No se puede abrir archivo\n";
- $l = 0;
- while ( $line = <FILE> ) { ## recorre el archivo y lo apunta a $line
- $l++; ## contador :P
- if ( $line == $argumento )
- { ## regexp toma las lineas en las que encuentre : # :S
- #print "$argumento";
- #print "$line";
- push( @almacen, $line ); ## almacena en el array @almacena if esta el match
- print "linea: $l \t->\t ";
- print "$line";
- #if($line =~ m/(.*):(.*)/g){ ## captura los datos que estan entre ":" .
- #print "\t\t\t dato1-> $1\n";
- #print "\t\t\t dato2-> $2\n\n";
- #}
- }
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
El problema está en la comparación en el "if". Si yo, en esta línea, pongo algo constante, del tipo
=~ /cadena/;, Perl logra la comparación de manera más que exitosa, pero no así, cuando intento asignar la cadena a buscar a una variable y que la misma sea la comparada.
Espero ser claro. Muchas gracias de antemano.