Передавайте аргументы по ссылке на блок с помощью оператора splat

Кажется, что аргументы копируются при использовании оператора splat для передачи аргументов в блок по ссылке.

У меня есть это:

def method
  a = [1,2,3]
  yield(*a)
  p a
end

method {|x,y,z| z = 0}
#=> this puts and returns [1, 2, 3] (didn't modified the third argument)

Как я могу передать эти аргументы по ссылке? Кажется, это сработает, если я передам массив напрямую, но оператор splat будет гораздо более практичным, интуитивно понятным и обслуживаемым.