in reply to sed awk to perl help

From your pipe line, I guess you actually want to grab the first 'word' (any continuous non whitespaces|simicolon|colon, like [^\s;:]+) after the start of a newline '^' or any colon|simicolon characters. This can be done pretty easily by a regex, not necessarily a better way, just another option for you:
perl -wlne '
    my @sites = /(?:^|[;:])\s*([^\s:;]+)/g;
    print qq(<a href="mysite.net/$_" >$_</a>) for @sites;
' page.txt

Regards,
Xicheng