Я хотел бы использовать cygwin инструменты (экран) для отладчика ActiveState Perl разработки и вызова от cygwin бросков среды следующая ошибка.
bash-3.2$ perl -d test.pl
The system cannot find the path specified.
Unable to get Terminal Size. The Win32 GetConsoleScreenBufferInfo call didn't work. The COLUMNS and LINES environment variables didn't work. The resiz
e program didn't work. at F:/Perl/lib/Term/ReadKey.pm line 362.
Compilation failed in require at F:/Perl/lib/Term/ReadLine/Perl.pm line 64.
at F:/Perl/lib/Term/ReadLine/Perl.pm line 64
Term::ReadLine::Perl::new('Term::ReadLine', 'perldb', 'GLOB(0x18e2e0c)', 'GLOB(0x1883e14)') called at F:/Perl/lib/perl5db.pl line 6073
DB::setterm called at F:/Perl/lib/perl5db.pl line 2237
DB::DB called at testReliance1.pl line 2
Attempt to reload Term/ReadLine/readline.pm aborted.
Compilation failed in require at F:/Perl/lib/Term/ReadLine/Perl.pm line 64.
END failed--call queue aborted at testReliance1.pl line 64.
at testReliance1.pl line 64
bash-3.2$
Я не мог найти обходное решение для этого.
Попробованный для использования cygwin жемчуга distrubution, но модулей жемчуга компиляции под cpan кошмар для меня, поскольку большинство из них не скомпилирует и не имеет всестороннего знания для фиксации ошибок компилятора.
Обеспечение поддельного терминала для отладчика может работать, но никакая идея о выполнимости и как продолжить двигаться.
Предложите, если существует какое-либо обходное решение для этого.
От раздела «Окружающая среда» термина :: Документация для чтения :
Переменная среды
PERL_RL
регулируется, какие заряжены Clone Clone. Если значение ложно, используется фиктивный интерфейс.
Как обходной путь, пока не сортируется несовместимость, вы можете отключить термин :: readline с
bash$ PERL_RL=0 perl -d test.pl
Попробуйте выполнить эту команду перед запуском Perl:
export COLUMNS LINES
Мне кажется, у вас много проблем. ActiveState Perl - это попытка переноса Perl на Windows с двоичным распределением и контролем версий для модулей, этот подход умирает. Успех клубничного перла и мой личный опыт заставляют меня думать, что вы просто используете не тот продукт.
Я использую исключительно клубнику, и количество проблем, с которыми я столкнулся после миграции, я могу сосчитать по пальцам. Я очень счастлив, что перешел из ActiveState. Я бы посоветовал вам тоже попробовать. Strawberry поставляется со средой mingw - он даже скомпилирует для вас XS-модули и откроет вам подлинный CPAN.
(это совершенно нестандартный ответ, но я вполне уверен, что использовал bin-файл соломенного perl в cygwin, и он сработал)
По сути, вам просто нужен Cygwin Term :: ReadKey
, чтобы занять более высокое место в иерархии вашей библиотеки, поэтому он используется.
или.
Запустите это от Cygwin.
perl -MTerm::ReadKey -E"say Term::ReadKey::termsizeoptions()"
Каким бы ни было это значение, отредактируйте Term / ReadKey.pm из своей установки Strawberry, взломайте его там, установите переменную
my $ termoption = value_you_got сверху
& termsizeoptions ()
, с вариантом $
Помните, что консоль Windows предоставляет совсем другую среду, чем ваша обычная консоль * nix. В общем, приложения Windows, которые хотят взаимодействовать с консолью, не будут работать в консолях Cygwin (например, MinTTY, XTerm, Screen), потому что они обеспечивают только эмуляцию PTY.
Энди Коппе, автор MinTTY , написал небольшую программу под названием conin , позволяющую программам Windows читать так, как если бы это было с консоли, но полная поддержка вывода по-прежнему считается невозможной.