On Mon, 17 Mar 2003 00:52:21 +0100 (MET), Louis Pouzin wrote:

>The intent is to catch all text from a line and its continuation if any (in msg 
>headers).

Here's another approach that does basically that same thing:

        @headers = split /\n(?![\ \t])/, $headers;

It splits on newlines (while deleting them) except when they're followed
by blanks (as per R. Kimball: spaces and tabs)

You can further process the result for example like this:

        foreach(@headers) {
            my($key, $value) = split /:\s*/, $_, 2;
            print "HEADER: $key\n\t$value\n\n";
        }

Alternatively, you can first unfold the headers, and next split on
newlines:

        $headers =~ s/\n[\ \t]+/ /g;
        @headers = split /\n/, $headers;

-- 
        Bart.

Reply via email to