Your initial string suffers from interpolation. Changing to single quotes, using the /s modifier and testing gives us the desired results:
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
my $lines = 'Aliquam vitae ipsum id felis finibus congue. Ut molestie
+scelerisque purus,
sit amet rhoncus leo aliquet ac. In eu lobortis quam. Maecenas auctor
+ semper enim,
ut convallis sapien dictum eu. Sed arcu ex, ornare et porttitor vitae
+, interdum a mi.
Mauris rutrum luctus rhoncus. Quisque velit quam, convallis vel est a
+t, tincidunt accumsan velit.
Fusce ut <u>metus ut which may either exceed $1,000.00 or OK. G. LAT,
semper nunc, in dictum magna.</u>
Aliquam ac vestibulum dolor. Praesent in magna nisi. Cras nec viverra
+ ligula. Suspendisse
efficitur imperdiet eros, <u>sed rhoncus sapien euismod cursus. Vesti
+bulum a posuere</u> elit,
eget tristique eros. Etiam et lectus venenatis, aliquet dui vitae, po
+suere lectus.';
my ($first, $second) = ($lines =~ /<u>(.*?)<\/u>/sg);
is ($first, 'metus ut which may either exceed $1,000.00 or OK. G. LAT,
semper nunc, in dictum magna.', 'First match');
is ($second, 'sed rhoncus sapien euismod cursus. Vestibulum a posuere'
+, 'Second match');
done_testing ();
$ perl 1160410.pl
ok 1 - First match
ok 2 - Second match
1..2
If that doesn't fix your problem you'll need to be a lot more specific about how it fails for you.
|