См. Win32 :: Консоль . Пример программы имеет демонстрацию изменения размера, которая работает на моем Windows XP SP3. Я нигде не пробовал.
Кроме того, может быть проще использовать простой графический интерфейс, состоящий просто из текстового поля.
Вот адаптация testWindow
из примера сценария:
use strict; use warnings;
use Win32::Console;
my $OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
my $IN = Win32::Console->new(STD_INPUT_HANDLE);
$IN->Mode(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT);
$OUT->Size(180, 200);
my ($maxx, $maxy) = $OUT->MaxWindow;
$OUT->Cls;
$OUT->Cursor(-1, -1, -1, 0);
$OUT->FillAttr($BG_YELLOW|$FG_BLUE, $maxy * $maxx, 0, 0);
$OUT->FillChar('X', $maxy*$maxx, 0, 0);
$OUT->Window(1, 0, 0, $maxx, $maxy);
while ($maxx>1 and $maxy>1) {
$maxx -= 5;
$maxy -= 5;
$OUT->Window(1, 0, 0, $maxx, $maxy);
sleep 1;
}
$OUT->Window(1, 0, 80, 50);
$OUT->Cls;