in reply to Skipping parameters in sprintf %, elegantly

In sprintf you can specify for each command the position in the list from which the value must be taken. I think this is a feature present from v.5.8, not sure...

In your example you can do:

printf "file=%2\$s line=%3\$s param=%4\$d\n",caller(),$param;

to skip the first parameter.

Rule One: "Do not act incautiously when confronting a little bald wrinkly smiling man."