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.
In reply to Re: Matching text between tags
by hippo
in thread Matching text between tags
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |