Die FAQ, die mit Perl geliefert wird, hat die Antwort auf diese Frage. Wenn Sie perldoc -q "screen size"
ausführen, erhalten Sie die folgenden Schritte aus:
Wie erhalte ich die Bildschirmgröße?
Wenn Sie Term::ReadKey
CPAN-Modul installiert ist, können Sie es verwenden, um die Breite und Höhe in Zeichen und in Pixel zu holen:
use Term::ReadKey;
($wchar, $hchar, $wpixels, $hpixels) = GetTerminalSize();
Dies ist mehr tragbar als der rohe „ioctl“, aber nicht als illustrativ:
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";
so können Sie die letzte verwenden, wenn Sie eine reine Perl-Lösung wollen, oder Term::ReadKey von CPAN installieren, wenn Sie eine einfachere Lösung wollen in deinem Code aber mehr Vor-Setup.
Sie immer Zugriff auf einen Compiler. Es gibt kein Gesetz, das besagt, dass Sie es auf demselben Host kompilieren müssen. –
[sarkastisch] Normalerweise ja ... aber nicht hier. Da jeder weiß, dass Java & Perl einfach auf jeder Box entwickelt werden kann, muss auf der Entwicklerplattform nicht die gleiche Umgebung (Lesearchitektur) vorhanden sein als die der Production ... [/ sarcastic] –
Warum der Sarkasmus? Ich gebe dir eine ernsthafte Antwort. Ihre Entwicklungs- und Produktionssysteme spielen keine Rolle. Sie können für beide eine Kreuzkompilierung durchführen. Du bist hier, um Hilfe zu bekommen und ich habe dir kostenlose Hilfe gegeben, also scheiße nicht drauf. –