myの引数が複数あるときはカッコでくくらないとダメだよ。
my($foo, $bar) このようにね。

あと%Mapは
my %Map = (
1 => 1,
13 => 2,
111 => 13,
);
という風に初期化するほうが読みやすぃし書きやすいので吉だと思うな。

forはfor(list)のforeach形式と一般的なfor(init; test; continue)だけ。
そのケースの場合は
for my $i(1 .. 3)じゃないと思った通りには動かないよ。