Я нашел, что просто установка установки DoubleBuffered на форме автоматически устанавливает все свойства, перечисленные здесь.
FAQ, поставляемый с Perl, содержит ответ на этот вопрос. Если вы запустите perldoc -q "размер экрана"
, вы получите следующее:
Как мне узнать размер экрана?
Если у вас есть
Term :: ReadKey
установленный из CPAN, вы можете использовать его для получения ширины и высоты в символах и пикселях:use Term :: ReadKey; ($ wchar, $ hchar, $ wpixels, $ hpixels) = GetTerminalSize ();
Это более переносимо, чем необработанный «ioctl», но не так наглядно:
требуется 'sys / ioctl.ph'; die "no TIOCGWINSZ", если не указано иное & TIOCGWINSZ; open (TTY, "+ dev / tty") или die "No tty: $!"; if (ioctl (TTY, & TIOCGWINSZ, $ winsize = '')) { die sprintf "$ 0: ioctl TIOCGWINSZ (% 08x: $!) \ n", & TIOCGWINSZ; } ($ row, $ col, $ xpixel, $ ypixel) = распаковать ('S4', $ winsize); печать "(строка, столбец) = ($ строка, $ столбец)"; print "(xpixel, ypixel) = ($ xpixel, $ ypixel)", если $ xpixel || $ ypixel; печать "\ п";
Таким образом, вы можете использовать последний вариант, если вам нужно решение на чистом Perl, или установить Term :: ReadKey из CPAN, если вам нужно более простое решение в коде, но более предварительную настройку.
Если вы хотите создать индикатор выполнения , не переживайте по поводу деталей. Используйте один из многих модулей индикатора выполнения на CPAN и покончите с этим.