# temporarily swap > for escape so our s!! to add href works.
# there's probably a way to do this with only a single s!! ...
$str =~ s!>!\e!g;
-$str =~ s!\b(https?://[\w+\+\&\?\.\%\;/-]+)!<a\nhref="$1"\n>$1</a>!g;
+$str =~ s!\b((ftp|https?)://[\w+\+\&\?\.\%\;/#-]+)!<a\nhref="$1"\n>$1</a>!g;
$str =~ s!\e!>!g; # swap escapes back to >
print '<html><head>',