# subroutine name: cprintf # Input: string with %1,%2,%3... meta-strings, meta-string replacements # Replaces these meta-strings with next parameters, # passed to routine, and returns processed string # Usage example: cprintf("I %2 free scripts, do %1?", "you", "like"); # Result: "I like free scripts, do you?" sub cprintf { my ($template, @vals)=@_; $template=~s/\%(\d+)/($1>=1 && $1<=scalar @vals)?$vals[$1-1]:"%$1"/ges; return $template; }