However, reading the code it strikes me there may be a more general approach. Name all final expression values and put them in variables. Then you can simply interpolate them in a qq string and be done with it.
As a bonus, it's more self documenting.
Also, from your example above, note how the duplication of $new + $old goes away.
I rarely generate HTML like this, but perhaps an argument can be made that the method and sub calls above (createLink, sprintf) are special enough to do something clever with the Interpolation module to be able to write something like this:
my $message_count = $new + $old; $html .= "$createLink{$USER, "you"} have $message_count $plural_of{"me +ssage", $message_count}";
(Escaping the HTML is left as an exercise for the reader, as is tradition)
/J
In reply to Re^2: Perl style: Arguing against three-argument join() (++join '')
by jplindstrom
in thread Perl style: Arguing against three-argument join()
by martin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |