my $s = "line1\r\nline2\r\nline3\r\n"; print $s; $s =~ s/[\n\r]//g; print $s; #### line1 line2 line3 line1line2line3 #### /s simply allows . to match end-of-line chars anywhere in the string (if needed) /m simply allows ^ and $ to match begin/end of lines in mid-string instead of only the begin/end of the entire string. /g is happy to repeat searching over several lines m// (simple search) will find something that occurs on a line after the first one \n \r will both be found (if present) without resorting to /s or /m