一番シンプルなのは、

my $count = count_shar($str, '^');

いくら頑張っても正規表現を
直接書いてると見難い。

関数にしてしまった方がいい。