in reply to Re: Re: Re: Re: Long URLs and Text::Wrap
in thread Long URLs and Text::Wrap

Ok, so maybe I've figured this out on my own...

Could it be simplified? I don't like the <<LINK X>> placeholders, but it's what I could figure out on a deadline.

Cheers,
Troy

#!/usr/bin/perl use strict; use warnings; use Text::Wrap; require URI::Find; $Text::Wrap::columns = 60; my @links; my $data; { local $/; $data = <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/<<LINK $i>>/$url/; $i++; } print "$data\n\n"; sub uriFound { push (@links, $_[1]); return "<<LINK $#links>>"; } __DATA__ This is a block of text that will precede the URL that is being presen +ted THE URL http://xxx.yyy.com/admin/more_grassroots/bigalerts/thefeder +algovernment/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 t +he wrapping algorithm!

-------

Output:

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/thefeder +algovernment/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!