Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les
expressions régulières. Je cherche à dans l'entête d'un mail à trouver
l'expéditeur et à afficher le contenu du champ From:
Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine
de caractère From:
Première difficulté.
Trouver From: n'est pas bien difficile mais comment trouver la suite des
autres caractères qui composent cette ligne.
Deuxième difficulté.
Une fois qu'on à recherché et trouvé cette chaine de caractère comment
l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Benoit Izac
Bonjour,
le 13/04/2004 à 14:12, Franck Dia a écrit dans le message <BCA1A5C7.8627% :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+' suivi de zéro ou plus caractère(s) quelconque(s) `.*' jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté. Une fois qu'on à recherché et trouvé cette chaine de caractère comment l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
print "$1n";
-- Benoit Izac
Bonjour,
le 13/04/2004 à 14:12, Franck Dia a écrit
dans le message <BCA1A5C7.8627%franckdia@yahoo.fr> :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les
expressions régulières. Je cherche à dans l'entête d'un mail à trouver
l'expéditeur et à afficher le contenu du champ From:
Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la
chaine de caractère From:
Première difficulté.
Trouver From: n'est pas bien difficile mais comment trouver la suite
des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche :
une ligne commençant `^'
par `From:'
suivi d'un ou plusieurs espace(s) `s+'
suivi de zéro ou plus caractère(s) quelconque(s) `.*'
jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus
caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté.
Une fois qu'on à recherché et trouvé cette chaine de caractère comment
l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
le 13/04/2004 à 14:12, Franck Dia a écrit dans le message <BCA1A5C7.8627% :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+' suivi de zéro ou plus caractère(s) quelconque(s) `.*' jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté. Une fois qu'on à recherché et trouvé cette chaine de caractère comment l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
print "$1n";
-- Benoit Izac
Franck Dia
Le 13/04/04 15:39, dans , « Benoit Izac » a écrit :
Bonjour,
le 13/04/2004 à 14:12, Franck Dia a écrit dans le message <BCA1A5C7.8627% :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+' suivi de zéro ou plus caractère(s) quelconque(s) `.*' jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté. Une fois qu'on à recherché et trouvé cette chaine de caractère comment l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
print "$1n";
Merci Benoit, je test de suite.
Le 13/04/04 15:39, dans 87n05guhcp@message.id, « Benoit Izac »
<use.reply.to@INVALID.ADDRESS> a écrit :
Bonjour,
le 13/04/2004 à 14:12, Franck Dia a écrit
dans le message <BCA1A5C7.8627%franckdia@yahoo.fr> :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les
expressions régulières. Je cherche à dans l'entête d'un mail à trouver
l'expéditeur et à afficher le contenu du champ From:
Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la
chaine de caractère From:
Première difficulté.
Trouver From: n'est pas bien difficile mais comment trouver la suite
des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche :
une ligne commençant `^'
par `From:'
suivi d'un ou plusieurs espace(s) `s+'
suivi de zéro ou plus caractère(s) quelconque(s) `.*'
jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus
caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté.
Une fois qu'on à recherché et trouvé cette chaine de caractère comment
l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
Le 13/04/04 15:39, dans , « Benoit Izac » a écrit :
Bonjour,
le 13/04/2004 à 14:12, Franck Dia a écrit dans le message <BCA1A5C7.8627% :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+' suivi de zéro ou plus caractère(s) quelconque(s) `.*' jusqu'à la fin de la ligne `$'
les parenthèses autour de `.*' permettent de capturer `zéro ou plus caractère(s) quelconque(s)' et sont stockés dans la variable $1.
perldoc perlre
Deuxième difficulté. Une fois qu'on à recherché et trouvé cette chaine de caractère comment l'affiche t'on par exemple sur la sortie standard d'un terminal UNIX?
print "$1n";
Merci Benoit, je test de suite.
Laurent Wacrenier
Benoit Izac écrit:
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+'
L'espacement n'est pas nessessaire selon la RFC 822 (qui n'a rien à voir avec perl).
Benoit Izac <use.reply.to@INVALID.ADDRESS> écrit:
on recherche :
une ligne commençant `^'
par `From:'
suivi d'un ou plusieurs espace(s) `s+'
L'espacement n'est pas nessessaire selon la RFC 822 (qui n'a rien à
voir avec perl).
on recherche : une ligne commençant `^' par `From:' suivi d'un ou plusieurs espace(s) `s+'
L'espacement n'est pas nessessaire selon la RFC 822 (qui n'a rien à voir avec perl).
suivi de zéro ou plus caractère(s) quelconque(s) `.*' jusqu'à la fin de la ligne `$'
Un corp d'entête peut être multilignes.
Franck Dia
Le 13/04/04 16:30, dans BCA1C63D.868C%, « Franck Dia » a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette fonction retourne pour chez moi le header suivant en lui passant le paramètre 1:
Return-Path: Delivered-To: Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000 Received: from unknown (HELO T5U3X7) ([24.82.178.152]) (envelope-sender ) by 212.198.2.118 (qmail-ldap-1.03) with SMTP for ; 12 Apr 2004 05:33:33 -0000 Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30 +0400 Message-ID: From: "Arica Jesse" Reply-To: "Arica Jesse" To: , , Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary poison Date: Mon, 12 Apr 2004 10:28:30 +0400 MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5 Content-Type: multipart/alternative; boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le ^et $.
Le 13/04/04 16:30, dans BCA1C63D.868C%franckdia@yahoo.fr, « Franck Dia »
<franckdia@yahoo.fr> a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les
expressions régulières. Je cherche à dans l'entête d'un mail à trouver
l'expéditeur et à afficher le contenu du champ From:
Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la
chaine de caractère From:
Première difficulté.
Trouver From: n'est pas bien difficile mais comment trouver la suite
des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le
script ne trouve pas la chaine quand j'utilise les caractères spéciaux:
^ et $
Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette
fonction retourne pour chez moi le header suivant en lui passant le
paramètre 1:
Return-Path: <fbagr8pfm@quiknet.com>
Delivered-To: franckdia@noos.fr
Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000
Received: from unknown (HELO T5U3X7) ([24.82.178.152])
(envelope-sender <fbagr8pfm@quiknet.com>)
by 212.198.2.118 (qmail-ldap-1.03) with SMTP
for <david.dupouy@noos.fr>; 12 Apr 2004 05:33:33 -0000
Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30
+0400
Message-ID: <z5msu640gfb-o5djnoec-52do8fbagr8pfm@quiknet.com>
From: "Arica Jesse" <fbagr8pfm@quiknet.com>
Reply-To: "Arica Jesse" <fbagr8pfm@quiknet.com>
To: david.dupouy@noos.fr, derouichey007@noos.fr, franckdia@noos.fr
Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary
poison
Date: Mon, 12 Apr 2004 10:28:30 +0400
MIME-Version: 1.0
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5
Content-Type: multipart/alternative;
boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le
^et $.
Le 13/04/04 16:30, dans BCA1C63D.868C%, « Franck Dia » a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette fonction retourne pour chez moi le header suivant en lui passant le paramètre 1:
Return-Path: Delivered-To: Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000 Received: from unknown (HELO T5U3X7) ([24.82.178.152]) (envelope-sender ) by 212.198.2.118 (qmail-ldap-1.03) with SMTP for ; 12 Apr 2004 05:33:33 -0000 Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30 +0400 Message-ID: From: "Arica Jesse" Reply-To: "Arica Jesse" To: , , Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary poison Date: Mon, 12 Apr 2004 10:28:30 +0400 MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5 Content-Type: multipart/alternative; boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le ^et $.
Franck Dia
Le 13/04/04 18:01, dans BCA1DB7B.8691%, « Franck Dia » a écrit :
Le 13/04/04 16:30, dans BCA1C63D.868C%, « Franck Dia » a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette fonction retourne pour chez moi le header suivant en lui passant le paramètre 1:
Return-Path: Delivered-To: Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000 Received: from unknown (HELO T5U3X7) ([24.82.178.152]) (envelope-sender ) by 212.198.2.118 (qmail-ldap-1.03) with SMTP for ; 12 Apr 2004 05:33:33 -0000 Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30 +0400 Message-ID: From: "Arica Jesse" Reply-To: "Arica Jesse" To: , , Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary poison Date: Mon, 12 Apr 2004 10:28:30 +0400 MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5 Content-Type: multipart/alternative; boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le ^et $.
J'ai dû boire! ça marche parfaitement avec les caractères spéciaux ^ et $.
Désolé pour le dérangement (lol) @+
Le 13/04/04 18:01, dans BCA1DB7B.8691%franckdia@yahoo.fr, « Franck Dia »
<franckdia@yahoo.fr> a écrit :
Le 13/04/04 16:30, dans BCA1C63D.868C%franckdia@yahoo.fr, « Franck Dia »
<franckdia@yahoo.fr> a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les
expressions régulières. Je cherche à dans l'entête d'un mail à trouver
l'expéditeur et à afficher le contenu du champ From:
Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la
chaine de caractère From:
Première difficulté.
Trouver From: n'est pas bien difficile mais comment trouver la suite
des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le
script ne trouve pas la chaine quand j'utilise les caractères spéciaux:
^ et $
Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette
fonction retourne pour chez moi le header suivant en lui passant le
paramètre 1:
Return-Path: <fbagr8pfm@quiknet.com>
Delivered-To: franckdia@noos.fr
Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000
Received: from unknown (HELO T5U3X7) ([24.82.178.152])
(envelope-sender <fbagr8pfm@quiknet.com>)
by 212.198.2.118 (qmail-ldap-1.03) with SMTP
for <david.dupouy@noos.fr>; 12 Apr 2004 05:33:33 -0000
Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30
+0400
Message-ID: <z5msu640gfb-o5djnoec-52do8fbagr8pfm@quiknet.com>
From: "Arica Jesse" <fbagr8pfm@quiknet.com>
Reply-To: "Arica Jesse" <fbagr8pfm@quiknet.com>
To: david.dupouy@noos.fr, derouichey007@noos.fr, franckdia@noos.fr
Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary
poison
Date: Mon, 12 Apr 2004 10:28:30 +0400
MIME-Version: 1.0
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5
Content-Type: multipart/alternative;
boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le
^et $.
J'ai dû boire! ça marche parfaitement avec les caractères spéciaux ^ et $.
Le 13/04/04 18:01, dans BCA1DB7B.8691%, « Franck Dia » a écrit :
Le 13/04/04 16:30, dans BCA1C63D.868C%, « Franck Dia » a écrit :
Bonjour, je débute tout juste sur Perl, et je bloque un peu sur les expressions régulières. Je cherche à dans l'entête d'un mail à trouver l'expéditeur et à afficher le contenu du champ From: Pour cela j'ai utilisé l'opérateur d'appartenance =~pour trouver la chaine de caractère From:
Première difficulté. Trouver From: n'est pas bien difficile mais comment trouver la suite des autres caractères qui composent cette ligne.
/^From:s+(.*)$/
Merci Benoit, je test de suite.
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
REMARQUE: J'utilise la méthode Head du module Mail::POP3Client, cette fonction retourne pour chez moi le header suivant en lui passant le paramètre 1:
Return-Path: Delivered-To: Received: (qmail 12981 invoked by uid 0); 12 Apr 2004 05:33:33 -0000 Received: from unknown (HELO T5U3X7) ([24.82.178.152]) (envelope-sender ) by 212.198.2.118 (qmail-ldap-1.03) with SMTP for ; 12 Apr 2004 05:33:33 -0000 Received: from 101.106.60.224 by 24.82.178.152; Mon, 12 Apr 2004 10:30:30 +0400 Message-ID: From: "Arica Jesse" Reply-To: "Arica Jesse" To: , , Subject: Y Stuck With Ur Current Job? Buy A Degree N Get Higher Salary poison Date: Mon, 12 Apr 2004 10:28:30 +0400 MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.2605.5 Content-Type: multipart/alternative; boundary="--051149541833615244"
Si quelqu'un peut m'expliquer pourquoi cette différence lorsque j'utilise le ^et $.
J'ai dû boire! ça marche parfaitement avec les caractères spéciaux ^ et $.
Désolé pour le dérangement (lol) @+
Benoit Izac
Bonjour,
le 13/04/2004 à 18:01, Franck Dia a écrit dans le message <BCA1DB7B.8691% :
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
Pour le ^ et $, c'est normal, je croyais que tu lisais ton en-tête ligne par ligne.
Après lecture (rapide) de la RFC 822, la regexp serait plutôt un truc comme ça :
if ($header =~ /(?:n|^)From:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/s) { print "$1n"; }
ça permet de faire des trucs intéressants avec par exemple les received :
#!/usr/bin/perl -w use strict;
$/ = ""; my $header = <>; my $count = 1; my @received;
while ($header =~ /nReceived:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/gs) { push(@received, $1); }
le 13/04/2004 à 18:01, Franck Dia a écrit
dans le message <BCA1DB7B.8691%franckdia@yahoo.fr> :
Bon! Mon script fonctionne mais avec une légère modification. En effet le
script ne trouve pas la chaine quand j'utilise les caractères spéciaux:
^ et $
Par contre aucun pb de cette manière /From:s+(.*)/
Pour le ^ et $, c'est normal, je croyais que tu lisais ton en-tête
ligne par ligne.
Après lecture (rapide) de la RFC 822, la regexp serait plutôt un truc
comme ça :
if ($header =~ /(?:n|^)From:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/s) {
print "$1n";
}
ça permet de faire des trucs intéressants avec par exemple les
received :
#!/usr/bin/perl -w
use strict;
$/ = "";
my $header = <>;
my $count = 1;
my @received;
while ($header =~ /nReceived:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/gs) {
push(@received, $1);
}
le 13/04/2004 à 18:01, Franck Dia a écrit dans le message <BCA1DB7B.8691% :
Bon! Mon script fonctionne mais avec une légère modification. En effet le script ne trouve pas la chaine quand j'utilise les caractères spéciaux: ^ et $ Par contre aucun pb de cette manière /From:s+(.*)/
Pour le ^ et $, c'est normal, je croyais que tu lisais ton en-tête ligne par ligne.
Après lecture (rapide) de la RFC 822, la regexp serait plutôt un truc comme ça :
if ($header =~ /(?:n|^)From:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/s) { print "$1n"; }
ça permet de faire des trucs intéressants avec par exemple les received :
#!/usr/bin/perl -w use strict;
$/ = ""; my $header = <>; my $count = 1; my @received;
while ($header =~ /nReceived:s*(.*?)s*(?=n[^[:cntrl:]s:]+:|$)/gs) { push(@received, $1); }