Mat*_*all 27
Perl附带的FAQ解答了这个问题.如果你跑perldoc -q "screen size",你会得到以下:
如何获得屏幕尺寸?
如果您
Term::ReadKey从CPAN安装了模块,则可以使用它来获取字符和像素的宽度和高度:Run Code Online (Sandbox Code Playgroud)use Term::ReadKey; ($wchar, $hchar, $wpixels, $hpixels) = GetTerminalSize();这比原始的"ioctl"更便携,但不是说明性的:
Run Code Online (Sandbox Code Playgroud)require 'sys/ioctl.ph'; die "no TIOCGWINSZ" unless defined &TIOCGWINSZ; open(TTY, "+</dev/tty") or die "No tty: $!"; unless (ioctl(TTY, &TIOCGWINSZ, $winsize='')) { die sprintf "$0: ioctl TIOCGWINSZ (%08x: $!)\n", &TIOCGWINSZ; } ($row, $col, $xpixel, $ypixel) = unpack('S4', $winsize); print "(row,col) = ($row,$col)"; print " (xpixel,ypixel) = ($xpixel,$ypixel)" if $xpixel || $ypixel; print "\n";
因此,如果您需要纯Perl解决方案,可以使用最后一个解决方案,或者如果您希望在代码中使用更简单的解决方案但需要更多的前期设置,则可以从CPAN 安装Term :: ReadKey.
这显然取决于平台,但在Linux上开箱即用的非常简单的解决方案是这样的:
my $width = `tput cols`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8759 次 |
| 最近记录: |