#!/usr/bin/perl use strict; use Term::ReadKey; use Data::Dumper::Concise; sub getwinsize (;$) { my $recheck = $_[0]; my $winsize = 0; my ( $maxrow, $maxcol ); return ( $maxrow, $maxcol ) if $maxrow && $maxcol && !$recheck; my $err = ioctl(TTY, &TIOCGWINSZ, $winsize = ""); if ($err) { print STDERR "ERROR: ioctl on STDOUT: $!\n"; unless ( ioctl( TTY, &TIOCGWINSZ, $winsize = "" ) ) { print STDERR "ERROR: ioctl on fileno(STDOUT): $!\n"; } else { printf STDERR "ioctl on fileno(STDOUT) worked\n"; } } else { printf STDERR "ioctl on STDOUT worked\n"; } return; } print Dumper(GetTerminalSize()); print getwinsize(); sub TIOCGWINSZ { 0x40087468 }