如何在Perl中一次输出一个屏幕

plupiseo  于 2022-11-15  发布在  Perl
关注(0)|答案(4)|浏览(157)

从命令行执行Perl脚本时,如何确保输出不会滚动到屏幕之外?
换句话说,如何模拟Unix moreless命令的功能?

qojgxg4l

qojgxg4l1#

Term::Pager模块似乎就是您要查找的模块。

s4n0splo

s4n0splo2#

用户可以将输出通过管道传输到less,这样他们就可以选择使用自己喜欢的寻呼机,甚至可以不使用任何寻呼机。

gc0ot86w

gc0ot86w3#

正如马蒂Virkkunen所说,用户最好将脚本传输到less
类Unix系统的用户希望输出为纯文本,因此如果需要,他可以将其传输到其他命令。如果脚本不以纯文本显示输出,用户可能会发现脚本的可用性较低。

gmxoilav

gmxoilav4#

要快速而又简单地执行此操作,您可以通过管道将文本发送到 lessmore

my $text = <<'EOD';
Lots
   and
      lots
         of
           text
EOD

my $pager = $ENV{PAGER} || 'less';
open(my $less, '|-', $pager, '-e') || die "Cannot pipe to $pager: $!";
print $less $text;
close($less);

有各种 lessmore 标志允许脚本在到达文本底部时继续。

相关问题