in reply to Assign a reference to a non reference

Ugliness abounds, but this should do it:
(%baz = %{$_->[0]}), (@bar = @{$_->[1]}) for [&foo()];
I'm using $_ as a holder for an array ref to the return value.

Hey, it's one line. No, I can't think of a quick idiom, unless you permit global variables:

our (%baz, @bar); (*baz, *bar) = &foo();
But mucking with the symbol table is generally bad form as well.

-- Randal L. Schwartz, Perl hacker