eval がある言語を使うとデータ部分自体を実行できる
eval の中では「この文章」という自己参照が許されている
eval(q="puts 'eval(q=%p)'%q")
この形の良いところはコード量が増えた時に一箇所しかいじらなくて良いこと
printf q="printf q=%p,q",q
例えば This is a Quine というコメントを足すことを考えると
eval(q="puts 'eval(q=%p)'%q # This is a Quine") printf q="printf q=%p,q # This is a Quine",q # This is a Quine
Ruby では String#% が sprintf で %p は pretty print してくれるフォーマット