[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Perl-like strings...?
 
- From: Klaus Ripke <paul-lua@...>
 
- Date: Mon, 9 Oct 2006 12:19:04 +0200
 
On Mon, Oct 09, 2006 at 10:53:27AM +0100, Paul Hudson wrote:
> Or even
> 
> 	"Name $fname, Rank: $rankstr, Serial: $sernum" % {fname="Andy",
> rankstr="Captain", sernum=1234}
> 
> 
> which is closer to the original syntax suggestion. I've used this, with a
> function rather than an operator
> 
> -- replace $<whatever> foo in 's' with the value of the corresponding entry
> in 'l'.
> -- (leaving it alone if there is no such key in l so that more than one call
> to expand
> -- can be used to expand all the variables)
> 
> 
> function expand (s, l)
> 	return (string.gsub(s, "$([%w_]+)", 
> 	function (n) 
> 		return l[n] or ("$" .. n)
> 	end))
> end
add l = l or _G a/o array index matching a/o
function printex (s) print(expand(s,_G)) end
and you're done.
Certainly no need for new syntax.