Perl の蟲じゃないかな。
どう考えても、gオプションの動作がおかしい。

$text1 = $text2 = "abc\n\n\n\n\n\ndef";
$text1 =~ s/^\s*$/K/gm;
while( $text2 =~ s/^\s*$/K/m ){}
print "\$text1:$text1\n\$text2:$text2\n";

$text1:abc
KK
def
$text2:abc
K
def