On Tue, Jul 04, 2006 at 05:06:54PM +1000, Brad Bowman wrote:
: Hello,
: 
: It seems that sprintf is will still be around in Perl 6 [1],
: and that sprintf formats will be available using the .as() method.
: While looking at some Python docs [2] I noticed two things that might
: be worth stealing; a sprintf operator (%) and named parameters in 
: the format string:
: 
: a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
: 
: (This example made me laugh)

What made me laugh is that Pugs knows the exact value of infinity:

    pugs> my $a = {"$^lang has $^c.as('%03d') quote 
types."}(:c(Inf),:lang<Perl>)
    "Perl has 
179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216
 quote types."

: Since perl6 has named parameters, pairs and slurpy hashes, I think
: sprintf should be taught to use them.  Syntax is an exercise for the
: reader.  (Unifying the '%2$d' with the named syntax would be nice..)

Yes, I18n and L10n requires some kind of templating engine.  Whether sprintf
is that engine is another question.

: The operator need is less clear cut.  Overloading '%' certainly wouldn't
: make sense in Perl 6 and the presence of .as() may cover the common cases.

It's also possible that some ~~ variant also binds a capture to
an interpolation.  That would have the advantage of working in
either order.

: Some alternatives are idiomatic combinations of interpolation and .as(),
: Perl6::Form forms, and custom quote operators/adverbs.
: 
: So, any takers?

We don't need any takers, we need any givers.  :)

Larry

Reply via email to