in reply to Elegance, dammit!

one way:
my @destructible = @$ref; while ( @destructible ) { my( $key, @val ) = splice @destructible, 0, 3; $out{ $key } = \@val; }
A word spoken in Mind will reach its own level, in the objective world, by its own weight