200 OK\015\012 Some-Header: value\015\012 Other-Header: value\015\012 \015\012 Body\015\012 Body\015\012 Body\015\012 #### # set input operator to CRLF $/ = "\015\012"; # read header line by line while ( my $head = ) { last if m/^\015\012/; # must be a header line # do stuff } # header finished so read body line-wise while ( my $body = ) { # do whatever } #### some very very very very very very very very very long single line that just keeps on and on and on going and going and going finally we get to a real new line.....