Как заставить пользовательский ввод (STDIN) перемещаться влево и вправо в PERL - Unix Env - PullRequest
0 голосов
/ 28 мая 2020

Я новичок ie в PERL. Всякий раз, когда я пытался переместиться влево или вправо для удаления символов в терминале, он показывает "^ [[D ^ [[C ^ [[C ^ [[D". Есть ли способ заставить пользовательский ввод (STDIN) прокручивать влево и вправо для удаления данных в PERL?

Я ищу пользователя, который использовал бы стрелки на клавиатуре, например, для редактирования или исправления того, что только что было набрано, без удаления последних введенных символов с обратным пробелом.

Пример кода: print «Что у вас Fav Food ?; $ food = STDIN;

Я хочу, чтобы строка чтения была гибкой для удаления пользовательских записей.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

То, что вы хотите, называется редактированием строки ввода. Для этого вы можете использовать какой-либо модуль perl, поддерживающий терминал, для получения пользовательского ввода (https://metacpan.org/search?q=module%3ATerm%3A%3AReadline). Или запустите свой сценарий perl под командой rlwrap (https://linux.die.net/man/1/rlwrap).

0 голосов
/ 28 мая 2020

STDIN - оператор ввода LINE. Вы можете изменить ввод, пока не нажмете клавишу ввода.

Вероятно, вам понадобится один из следующих вариантов: https://www.cs.ait.ac.th/~on/O/oreilly/perl/prog3/ch02_11.htm

...