Larry Wall wrote:
> Last night I got a message entitled: "yum: 1 Updates Available".
> Of course, that's probably just a Python programmer giving up on doing
> the right thing, but we see this sort of bletcherousness all the time.
> After a recent exchange on PerlMonks about join, I've been thinking
> about the problem of pluralization in interpolated strings, where we
> get things like:
>     say "Received $m message{ 1==$m ?? '' !! 's' }."
> My first thought is that this is such a common idiom that we ought
> to have some syntactic sugar for it:
>     say "Received $m message\s."
> which reads nicely enough since the usual case is plural.
> Basically, \s would be smart enough to magically know somehow whether
> the last interpolation was 1 or not.  It would be particular nice when
> the interpolation is a closure:
>     say "Received {calculate_number_of_messages()} message\s."

I think the most general solution is a nice quoting construct.

So if you say

say qq:l10n(en)"Received $m message\s";
the quote handler in l10n:en (or whatever) receives a list of pairs of
strings and variables to interpolate, ['$m' => $m, '\s' => undef].

It can then decide what to do with it.

Wait, that smells like macros, which are already specced - so never mind ;-)


Moritz Lenz |

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to