Thank you so much Ken! This is amazing. As for your first comment, I might want to compare all the fragments with each other, which is a very hard job. As a work around, I added a (clumsy) piece of code to yours, so that the script picks up the most complete string as the reference one -- meaning the string which contains most words. Here is the code:
#!/usr/bin/env perl
@exemplars = <DATA>;
foreach $line (@exemplars) {
@words = split (/\s+/, $line);
$array[$#words] = $line;
}
@array = sort { $a <=> $b } @array;
$reference = $array[-1];
print "Reference string: $reference";
for (@exemplars) {
$exemplar = $_;
s/[.]{3}/.+?/g;
if ($reference !~ /$_/) {
print "NO MATCH: $exemplar";
}
}
__DATA__
Gallia est omnis divisa in partes tres
Gallia est omnis divisa in ...
Gallia est omnis ...
Gallia
... omnis divisa in ...
... in ...
... est ...
Gallia est ... tres
Gallia ... partes tres
Gallia est ... partes tres
Gallia ... divisa ... tres
... tres
quattuor
Gallia ...
Output is the same as yours. I will run some tests, and see what happens.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|