Sujet : Re: Champ cancel-lock multiligne
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.comp.usenet.serveursDate : 19. May 2022, 12:21:36
Autres entêtes
Organisation : Posted through ALPHANET
Message-ID : <t6597v$mr2$1@shakotay.alphanet.ch>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
User-Agent : tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-20-amd64 (x86_64))
yamo' <
yamo@beurdin.invalid> wrote:
my %headers;
# for my $line(split(/\s*\n/, $headers)) {
my $previous;
foreach my $line (split(/\s*\n/, $headers)) {
for ou foreach c'est la même chose.
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
$previous = $1;
} elsif ($line =~ m/^\s+(.*)/) {
if (defined($previous)) {
$headers{$previous} .= " " . $1;
}
else {
INN::syslog('notice', 'garbled line: ' . $line);
}
}
}
Par contre, il manque des trucs, voici le code complet:
my %headers;
my $previous;
foreach my $line (split(/\s*\n/, $headers)) {
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
# assuming low/upcase normalisation by INN
$headers{$1} = $2;
$previous = $1;
}
elsif ($line =~ m/^\s+(.*)/) {
if (defined($previous)) {
$headers{$previous} .= " " . $1;
}
else {
INN::syslog('notice', 'garbled line: ' . $line);
}
}
}
(pour tous les entêtes sous la forme Nom: valeur, créer
l'association Nom => valeur dans %header, mais également
traiter les lignes de continuation)
La version de base c'était:
my %headers;
my $previous;
for my $line (split(/\s*\n/, $headers)) {
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
# assuming low/upcase normalisation by INN
$headers{$1} = $2;
}
}
(pour tous les entêtes sous la forme Nom: valeur, créer
l'association Nom => valeur dans %header)