Without introduction, I'll just present the syntax idea: f/%03d %15s/$foo, $bar/;
This gives s?printf to any expression with short and concise syntax, making printf redundant, which means I won't even have to start a discussion about sayf :) printf "%03d %15s", $foo, $bar; vs print f/%03d %15s/$foo, $bar/; Of course, this is s///-like in quoting behaviour, so f[][] or f""" should work just as well. The RHS is not a string, but parsed as an expression in list context. If this feels weird, just think of s///e, where the RHS is also not a string. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html