use strict;
my $str = '(123)456-7890 (321)-654-0987
(111) 111-1111
222-222-2222
(333)333.3333
(444).444.4444
blah blah blah (555) 555.5555
666.666.6666 random text';
my $regex = qr/\(?(\d{3})\)?[ -.]?(\d{3})[ -.]?(\d{4})/p;
my $subst = '(\\1)\\2-\\3';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html