my $outdata_v1 = ""; my $outdata_v2 = ""; my $data_offset = tell DATA; my $line_count = 1; print "First Regexp solution\n"; print "-"x20, "\n"; while ( ) { $outdata_v1 .= $_; print "outdata for read of line $line_count before:\n$outdata_v1\n"; $outdata_v1 =~ s{}{ --->}g; print "outdata for read of line $line_count after:\n$outdata_v1\n"; $line_count++; } #-- reset it all, start again with the better regexp. seek( DATA, $data_offset, 0); $line_count = 1; print "Second Regexp solution\n"; print "-"x20, "\n"; while ( ){ $outdata_v2 .= $_; print "outdata for read of line $line_count before:\n$outdata_v2\n"; $outdata_v2 =~ s{(?(?! --->)}{ --->}g; print "outdata for read of line $line_count after:\n$outdata_v2\n"; $line_count++; } __DATA__