質問します!

open FH,"/hoge/hoge.txt" #hoge.txtを開く
while (<FH>) { #FHファイルを行単位で読み込んでいく
   $Str = $_; #変数Strにデフォルトで入力やパターンマッチになる特殊変数を代入
if( $Str =~ /__\w+__/g ){ #�@???
if( $Str =~ /__KEYWORD__/ ){ #�A???
$Str =~ s/__KEYWORD__/KEY/; #__KEYWORD__をKEYに置換する
}
}
print $str;
}
close FH;

コメントの部分の�@と�Aの説明がうまくできません。
�@は=~の部分がわからず、�Aは/と/で挟まなくて__KEYWORD__だけでも
同じ結果が返ってくるのではないかと思って悩んでいます。
よろしかった教えて頂けないでしょうか?