Может показаться, что проблема в Term::ReadLine::Gnu::XS::_trp_completion_function()
(обертке для определенной пользователем функции завершения).
Ваши совпадения правильно извлекаются из вашей функции complete_word()
, но затем следующий фрагмент из оболочки выполняет свое собственное совпадение с учетом регистра:
for (; $_i <= $#_matches; $_i++) {
return $_matches[$_i] if ($_matches[$_i] =~ /^\Q$text/);
}
, где @_matches
- результат ваших complete_word()
, а $text
- завершенный текст.
Таким образом, похоже, что ответ нет , не поддерживается поддерживаемый способ получить Term::ReadLine::Gnu
для завершения без учета регистра. Вы должны были бы переопределить приватный Term::ReadLine::Gnu::XS::_trp_completion_function
(безобразный хак, чтобы быть уверенным) - или изменить XS.pm
напрямую (возможно, еще более уродливый взлом).
РЕДАКТИРОВАТЬ: Term::ReadLine::Gnu
используемая версия: 1,20