From: Randal L. Schwartz Date: Sun, 17 Sep 2006 01:40:22 GMT Subject: Re: [PATCH] gitweb: Make git_get_refs_list do work of git_get_references Message-ID: <864pv7tgmx.fsf@blue.stonehenge.com> In-Reply-To: <7vodtf8eym.fsf@assigned-by-dhcp.cox.net> >>>>> "Junio" == Junio C Hamano writes: Junio> Jakub Narebski writes: >> Make git_get_refs_list do also work of git_get_references, to avoid >> calling git-peek-remote twice. It now returns either list of refs as >> before in scalar context, or references hash and list of refs in list >> context. Junio> I do not think we want to have too many functions that return Junio> different things depending on contexts. Forcing callers to Junio> remember what the function does in which context is bad. That's even an inaccurate description, so an expert in Perl (I've known a few) would just scratch his head. You cannot ever ever return a list in a scalar context. Ever. Never ever. You can return an array ref that *contains* a list of references, sure. Perhaps that's what you mean, as in: return [$ref1, $ref2, $ref3, $ref4]; # scalar return But to be sloppy about the terminology confuses me. For example, I can't tell from your description if you mean the list-value return is: return \%some_hash, $ref1, $ref2, $ref3, $ref4; # list return: N items Or, reverse engineering your sloppiness on the other description, you *MIGHT* mean: return \%some_hash, [$ref1, $ref2, $ref3, $ref4]; # list return: 2 items Perl5 does *no* implicit referencing/dereferencing (just like C). So yes, being precise with your language is necessary. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!