入力された文字列の「ひらがな、カタカナ、英数字、記号」の「全角、半角、大文字、小文字」に
マッチするようにしたいです。
例えば正規表現で表現すると
"あさ/"と入力されたら/[あアアぁァァ][さササ][//]/でマッチを取るように。

#そのまま書くと下記のようなイメージ
use utf8;
use open IO => ":encoding(sjis)";

$input= shift; #入力は"あさ/","アサ/","アサ/","ァサ/"などの場合、出力は全て同じ結果になるように
#【A】単純に置換
$input =~ /[あアアぁァァ]/\[あアアぁァァ\]/g; #iオプションをつければ小文字はいらなくなる??
$input =~ /[AAaa]/\[AAaa\]/g;
$input =~ /[/\/]/\[/\/\]/g;
$input =~ /[.\./]/\[.\.\]/g;
〜
〜
open(IN,"a.txt");
while(<IN>){
print "$_" if(/$input/);
}
close(IN);

さすがにこれは置換の行が増えすぎてナンセンスだと思うので、
何かスマートな方法もしくはモジュールなどありますでしょうか?