Título: Una expresion regular en PERL....¡¡No la entiendo Publicado por: jcjuank en 19 Julio 2005, 19:12 pm Buen dia. Estoy tratando de traducir un archivo en formato ebcdic a ascii hay un paquete en perl para hacerlo pero las tablas de traduccion q' usan no me sirven. Ya consegui la tabla pero tengo problemas para interpretar la siguiente expresion: eval '$byte=~tr/' . $default . '/\000-\377/'; en $default hay algo como esto $default='\000\001\002\003\234\011....se extiende hasta 255 posiciones. En $byte hay una cadena EBCDIC, empezando no se q' sea /\000-\377/ y no se como haga tr/// para hacer coincidir un caracter en $byte con / . $default . / y reemplasarlo por /\000-\377/.
Intente cambiar un valor de los q' estan en $default pero me cambia todas las cadenas q' convierta. No me deberia cambiar solo una??? Bueno ese es mi problema les agradezco cualquier ayuda. Título: Re: Una expresion regular en PERL....¡¡No la entiendo Publicado por: Ivanchuk en 20 Julio 2005, 21:04 pm Deberias ver la documentacion de perl, que por cierto esta muy bien documentado.
Código: man perlintro El operador tr es para traducir. tr/ListaDeBusqueda/ListaDeReemplazo/ Le tenes que pasar una lista para que busque y luego otra lista con sus correspondientes reemplazos. Por ej: Código: my $algo="1234"; La lista se la podes pasar como un rango tambien por medio del caracter "-"(sin las comillas), ej.: Código: my $algo="MAYUSCULA"; De todas maneras te recomiendo que leas la documentacion, esta todo re bien explicado. Bytes. Título: Re: Una expresion regular en PERL....¡¡No la entiendo Publicado por: jcjuank en 21 Julio 2005, 15:22 pm Gracias, leere la documentacion q' me recomendaste, no sabia q' \000 era un numero en octal, ese era uno de mis errores.....
Seguire trabajando. |