mapの是非以前にこの例ならループで回してインクリメントすること自体無駄
スカラーコンテキストで評価されるwhileならまだ利点あるからわかるけど
mapやfor使うくらいならこっちのほうが効率的
my $count = () = $str =~ /(\^)/g;

もちろん>>832を知ってればこれすら必要ないが