Re: [PATCH] gitweb: Make git_get_refs_list do work of git_get_references
- From
Randal L. Schwartz <merlyn@stonehenge.com>
- Date
- Sep 17, 2006, 01:40 UTC
- Message-ID
- <864pv7tgmx.fsf@blue.stonehenge.com>
- In-Reply-To
- <7vodtf8eym.fsf@assigned-by-dhcp.cox.net>
>>>>> "Junio" == Junio C Hamano <junkio@cox.net> writes:
Junio> Jakub Narebski <jnareb@gmail.com> 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 <merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!