質問です。BBSのログを読み出す際に、URLがある場合にはリンクを貼ろうと思っています。
例えば、普通にリンクを貼るだけならできるのですが、
自サイトへはinner、他サイトへはouterというスタイルを適用したいと思っています。

ログの例:(MyIDを含むのが自サイトとします)
http://localhost/MyID/<;BR>http://www.2ch.net/

出したい出力結果(HTML上):
<A href="http://localhost/MyID/"class="inner">http://localhost/MyID/<;/A><BR><A href="http://www.2ch.net/" class="outer">http://www.2ch.net/<;/A>

sub link { # 引数に渡すのはログ全体
 $_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+MyID[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="inner">$2<\/A>/g;
 $_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="outer">$2<\/A>/g;
}

こう記述すると、前者も後者も全てouterになってしまいます。

if ($_[0] =~ /MyID/) {
 $_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+MyID[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="inner">$2<\/A>/g;
} else {
 $_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="outer">$2<\/A>/g;
}

こうすると、今度は自サイトへのリンクは貼られるのですが、他サイトへのリンクは貼られなくなってしまいます。
上記の出したい出力結果を出すには、どのように記述したらよいのでしょうか。