Hola, Amaya: Prueba con la función split:
$a="a|b|c"; @b = split(/\|/,$a); print $b[1]; (imprime "b") Saludos! diego On Thu, 27 Feb 2003, Amaya wrote: > Hola listeros, > > Ando muy entretenida ;-) parseando unos bonitos logs ;-) y tengo un > problema que seguro que es la tontería más grande del mundo. > > Tengo una expresión regular y necesito que haga un poco más: > > # Abro un archivo > while (chomp($id = <FTAG>)){ > # Abro otro archivo > while (chop($line = <FAUTH>)){ > # Esto me funciona, pero no muy bien > $line =~ /.*?\|.*?\|.*?\|.*?\|.*?\|.*?\|(.*?.)\|.*?/ ; > $encontrado = $+ ; > > # Esto es lo que necesito que me encuentre: > # La línea debe empezar por el contenido de la variable $id. > $line = ~/^\$id\|.*?\|.*?\|.*?\|.*?\|.*?\|(.*?.)\|.*/; > ##################################################### > # ~~~~~ Cómo escribo esto???? > ##################################################### > $encontrado = $+ ; > > if($encontrado){ > print $encontrado, "\n"; > } > } > } > > La línea típica de logs sería así: > 4a10a003-f2da63e8c3-0|lxrhgpp04|2003-01-20 07:01:06,372|AUTH > |[Thread-8]|1|AplicaciónCRC|1|351|1|0|0|0|| > Abstrayendo: > > > $id|host|fecha|petición|algo|algo|$encontrado|más_cosas_que_no_me_interesan > > Sólo quiero saber el campo $encontrado de la línea que empieza por $id. > > Estoy empezando tanto con Perl como con las regexp y me cuesta un poco. > Gracias por vuestro tiempo :-) > > > > -- > .''`. Girl, you gotta change your crazy ways, you hear me? > : :' : Crazy by Aerosmith > `. `' Proudly running Debian GNU/Linux (Sid + 2.4.20 + Ext3) > `- www.amayita.com www.malapecora.com www.chicasduras.com > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > Diego Sevilla Ruiz -- http://ditec.um.es/~dsevilla/ -- [EMAIL PROTECTED] Dep. Ingeniería y Tecnología de Computadores, Facultad de Informática Univ.de Murcia,Campus Espinardo,30080 Murcia (SPAIN),Tel.+34968367571 lynx -dump ditec.um.es/~dsevilla/face |uncompface | ikon2xbm |display PGP: http://pgp.rediris.es:11371/pks/lookup?op=get&search=0xC9B964B7 perl -e'$_="[EMAIL PROTECTED]&B";for(/../g){print unpack("b*",$_),"\n"}'|tr 01 " #" (lambda x,f=lambda x,f:x and x[-1]+f(x[:-1],f):f(x,f))('[EMAIL PROTECTED]')