#!/usr/bin/perl use strict; use warnings; use Text::Wrap; require URI::Find; $Text::Wrap::columns = 60; my @links; my $data; { local $/; $data = ; } my $finder = URI::Find->new(\&uriFound); my $how_many_found = $finder->find(\$data); $data = wrap("", "", $data); # Substitute the links back in my $i = 0; foreach my $url (@links) { $data =~ s/<>/$url/; $i++; } print "$data\n\n"; sub uriFound { push (@links, $_[1]); return "<>"; } __DATA__ This is a block of text that will precede the URL that is being presented THE URL http://xxx.yyy.com/admin/more_grassroots/bigalerts/thefederalgovernment/oy_veit/email/the_email_template.html This is the mid block of text that will appear between the URLs. http://www.google.com/search?q=POST+MSIE+GET&ie=UTF-8&oe=UTF-8 This is the after block of text that will appear after the URLs. If this block is NOT at the bottom of the email, then we need to fix the wrapping algorithm!