> grow from right to left instead of shrinking from left to right
This might be much faster if the overlaps are considerably smaller than the total files.
And it avoids any semipredicate problem with $marker.°
(Not heavily tested, please check edge-cases)
use strict;
use warnings;
my $file1 = join "\n", qw( a b c d c );
my $file2 = join "\n", qw( c d c x );
my $content = "$file2\n$file1";
$content =~ /^(.*)\n.*\1$/s;
(substr $file2,0,length $1)=$file1;
print $file2;
a
b
c
d
c
x
°) unfortunately it doesn't, prove left to the interested reader |