よくよく、ソースを見ると、この関数って「待ちなし」なんですね。。 それじゃ、先頭にP$=""で初期化すると、思った動作はしませんね。。 もう一度、ロジックを考えたほうがよさそうですよ。