in reply to What is clear code ?

The 2 programs listed are not equivalent. If you want to rephrase Ovid's example to match your example, it would be something like:
sub Ovid_Clear_MakePtag2{ my $fixme = shift; # take in our parameters return join "", # join with nothing map { "<p>$_</p>" } # wrap each line in <p></p> tags split "\r\n", $fixme; # break apart on the newlines }
Or even:
sub Abstract_Clear_MakePtag{ my $fixme = shift; # take in our parameters return "<p>" . join("</p><p>", split "\r\n", $fixme) . "</p>" }
which uses 2 concepts: split and join (really one concept).

Would this make a good "clear" example?

As for my opinion, I'd go with your example being the clearer of the 3 examples so far.