My intent was to return a list of key-value pairs, as in the code sample - and I'm not sure I agree with your doc-quote
… a list assignment in list context produces the list of lvalues assigned to, …
Isnt the list assigned to the hash(or list of key/value pairs) %return ?
Isnt the list assigned to on the left hand side of the '=' ?
In the second code samples case that would be (a,1,b,2,c,3,d,4), yes?
The list assigned _from_ is what I'm seeing returned..
Apart from that the list-fu is a neat trick, but perhaps the explicit return is more appropriate, as discussed later in this thread, or a better understanding of when to use return...
...it is better to be approximately right than precisely wrong. - Warren Buffet