while (@ref) { $out{$_} = [ shift(@ref), shift(@ref) ] for shift(@ref); }