Одна оговорка:
Использование %Q[]
и %q[]
для сравнения строк не является интуитивно безопасным.
Например, если вы загружаете что-то, предназначенное для обозначения чего-то пустого, например ""
или ''
, вам необходимо использовать фактические escape-последовательности. Например, скажем, qvar
равно ""
вместо любой пустой строки.
Это даст оценку false
if qvar == "%Q[]"
Как это будет,
if qvar == %Q[]
Пока это будет оцениваться до true
if qvar == "\"\""
Я столкнулся с этой проблемой, когда отправлял переменные командной строки из другого стека в мой скрипт ruby. Только ответ Габриэля Аугусто работал на меня.