Интерполяция Ruby

Может кто-нибудь объяснить, зачем это делать:

%{#$"}

в irb производит следующее?

=> "[\"enumerator.so\", \"enc/encdb.so\", \"enc/big5.so\", \"enc/cp949.so\", \"enc/emacs_mule.so\", \"enc/euc_jp.so\", \"enc/euc_kr.so\", \"enc/euc_tw.so\", \"enc/gb2312.so\", \"enc/gb18030.so\", \"enc/gbk.so\", \"enc/iso_8859_1.so\" ... ]

Спасибо!

Ответ 1

%{ ... } - строковый литерал. Он похож на "...".

%{a string} == "a string"
# => true

#{expr} внутри этого строкового литерала интерполяция. Выражение expr внутри замененного значения. Для глобальной переменной вы можете опустить { и }.

"#{1 + 2}"
# => "3"
%{#$"} == $".to_s
# => true

$" одна из предопределенных переменных: массив загруженных имен модулей.