Paul Lalli wrote:
On Jun 12, 12:15 am, [EMAIL PROTECTED] (Beast) wrote:Why this following code has not working as expected? print "Number of element(s) : " . sprintf("%10d", keys(%hash) ) . "\n";The keys() function does two different things, depending on context. In scalar context, it returns the number of key/value pairs in the hash. In list context, it returns a list of the keys. You probably knew that, but didn't realize that you're using it in a list context here. The arguments to a function are a list,
$ perl -le'print prototype "CORE::sprintf"' $@ The *second* argument to this *particular* function is a list.
and so Perl is expecting a list of values to be passed to sprintf().
A scalar and a list. The first argument is interpreted in scalar context: $ perl -le'@x = "a" .. "z"; print sprintf @x' 26 $ perl -le'print sprintf "a" .. "z"' 1E0 John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
