#! perl -slw use strict; my $seg1 = "The man who likes reading books and writing poems."; my $seg2 = "The man who likes reading big books and poems."; my $best = ''; while( length( $seg1 ) > length( $best ) ) { while( $seg1 =~ m[(?!\s)(?=(\b.+\b)(?!\s))]g ) { my $bit = $1; $best = $bit if $seg2 =~ m[\Q$bit] and length( $bit ) > length( $best ); } $seg1 =~ s[(?:\s|^)\S+$][]; } print $best; __END__ [17:04:21.46] C:\test>junk39 The man who likes reading