[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Grep en perl



El día 27/10/08, Javier <correolista@gmail.com> escribió:
> Hola lista,
>
>  estoy escribiendo un programilla en perl muy simple. Coge desde STDIN
>  la entrada, que es un correo electrónico y muestra los campos que este
>  tiene. Luego, dentro del campo $body (siempre tiene un formato
>  específico algo: valor) necesito quedarme sólo con un campo. ¿Cómo
>  puedo lograrlo?
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  El programa:
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  my $mbox= \*STDIN;
>  my $mb = Mail::MboxParser->new($mbox);
>  for my $msg ($mb->get_messages)
>  {
>         my $to = $msg->header->{to};
>         my $from = $msg->header->{from};
>         my $subject = $msg->header->{subject} || '<No Subject:>',
>         my $body = $msg->body($msg->find_body,0);
>         my $body_str = $body->as_string || '<No message text>';
>         print   "From: $from\n",
>                   "To: $to\n",
>                   "Subject: $subject\n",
>                   "Message Text: $body_str\n";
>  }
>
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  El mail de entrada:
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  Pages: 1
>  Receiver:
>  Quality: 196
>  ...
>  GroupID: 16
>  CommID: c000000040
>
>  Processing time was 0:39.
>
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  La idea es leer con el programa esta entrada y luego conseguir
>  quedarme en una variable con el valor "c000000040". Alguna idea de
>  cómo realizar ese "grep" en perl. Lo intenté, pero en perl no consigo
>  sacarlo.
>
aquí tenés un ejemplo de uso de grep:
http://perl.about.com/od/perltutorials/qt/perlgrep.htm

y /parece/ que tus datos tienen que estar en un array. Yo (no tengo un
perl a mano, así que lo mas seguro es que lo siguiente no funcione) lo
haría con algo como

if ($cadena=~ /CommID/ ) { ($campo,$valor)=split(':', $cadena) }

o algo así, mas información:
http://www.troubleshooters.com/codecorn/littperl/perlreg.htm#op_=~
http://perlenespanol.baboonsoftware.com/tutoriales/funciones/funcion_split_y_join.html

Reply to: