回答ありがとうございます。
ちなみに今はHTMLの文法はおいておいてください。

グローバル置換は順番に1つ1つ置換していくのとは
違うということでしょうかね。
$text =~ s/^\s*$/<p>/m for 1..10;
これだと違ってくるのはなぜなんでしょうね。