Я нашел этот блок кода в Википедии в качестве примера quine (программы, которая печатает себя) на Ruby.
puts <<2*2,2
puts <<2*2,2
2
Однако я не понимаю, как это работает. В частности, чего я не понимаю, так это того, что когда я удаляю последнюю строку, я получаю эту ошибку:
синтаксическая ошибка, неожиданный конец $, ожидание tSTRING_CONTENT или tSTRING_DBEG или tSTRING_DVAR или tSTRING_END
Что происходит в этих строках?