($buf_tmp,@lines)=$buf=~/[^\x0D\x0A]*\x0D?\x0A?/g;
を訳してください。