Понимание Ruby Quine

Я нашел этот блок кода в Википедии в качестве примера quine (программы, которая печатает себя) на Ruby.

puts <<2*2,2
puts <<2*2,2
2

Однако я не понимаю, как это работает. В частности, чего я не понимаю, так это того, что когда я удаляю последнюю строку, я получаю эту ошибку:

синтаксическая ошибка, неожиданный конец $, ожидание tSTRING_CONTENT или tSTRING_DBEG или tSTRING_DVAR или tSTRING_END

Что происходит в этих строках?

6
задан Andrew Grimm 3 June 2012 в 22:46
поделиться