>>>>> "BD" == Brent Dax <[EMAIL PROTECTED]> writes:
BD> Uri Guttman:
BD> # printf "%d hash is $(%foo.string)", $bar ;
BD> #
BD> # no ambiguity and no confusion. how often will you need to
BD> # interpolate a
BD> # hash?
BD> As others have pointed out, %foo{BAR} has to work. But I have another
BD> question for you: what's wrong with
BD> sprintf '%d hash is %s', $bar, %foo;
that is fine but if you want the format string to use %foo{bar} then you
need double quotes. the problem is deciding when to allow that and to
not make %s become broken. i proposed a possible solution in my previous
post. maybe it won't fall on deaf ears. :)
BD> ? After all, interpolating into an sprintf is a bit dangerous anyway
BD> (what if %foo=('%d' => '')?), and you avoid special cases.
that is another point. not allowing a complete hash to interpolate. but
what defines that? what if you wanted %s{bar} and that was a format and
not a hash and in a double quoted string? my proposal handles that well
with no major noise factors. qn would be just like qq but not allow any
direct hash interpolations (%foo or %foo{bar}). you can always get those
with $() if needed. this solves the common case with a minimal of noise
and the uncommon case has a simple out of using $(). no need for wacko
ways to put in \n. it is double quotish in all ways but one and mainly
to be used for printf format strings.
uri
--
Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com
-- Stem is an Open Source Network Development Toolkit and Application Suite -
----- Stem and Perl Development, Systems Architecture, Design and Coding ----
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org