in reply to sprintf format parameter required

The reason is that sprintf can be more pedantic about its arguments than printf. The first argument of sprintf is always a format, therefore, it has $@ as prototype, putting the first argument of sprintf in scalar context.

printf is more difficult, as it has an optional first argument: a filehandle. This is a non-expressable prototype which makes that printf @array works, there's no way for Perl to force scalar context on the first argument.

Abigail