sub f { return \'hello', [1..3], { a => b }, \&f } local (*a, *b, *c, *g) = foo(); # $a, @b, %c, and &g are now defined.