从命令行执行Perl脚本时,如何确保输出不会滚动到屏幕之外?换句话说,如何模拟Unix more或less命令的功能?
qojgxg4l1#
Term::Pager模块似乎就是您要查找的模块。
s4n0splo2#
用户可以将输出通过管道传输到less,这样他们就可以选择使用自己喜欢的寻呼机,甚至可以不使用任何寻呼机。
less
gc0ot86w3#
正如马蒂Virkkunen所说,用户最好将脚本传输到less。类Unix系统的用户希望输出为纯文本,因此如果需要,他可以将其传输到其他命令。如果脚本不以纯文本显示输出,用户可能会发现脚本的可用性较低。
gmxoilav4#
要快速而又简单地执行此操作,您可以通过管道将文本发送到 less 或 more:
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);
有各种 less 和 more 标志允许脚本在到达文本底部时继续。
4条答案
按热度按时间qojgxg4l1#
Term::Pager模块似乎就是您要查找的模块。
s4n0splo2#
用户可以将输出通过管道传输到
less
,这样他们就可以选择使用自己喜欢的寻呼机,甚至可以不使用任何寻呼机。gc0ot86w3#
正如马蒂Virkkunen所说,用户最好将脚本传输到
less
。类Unix系统的用户希望输出为纯文本,因此如果需要,他可以将其传输到其他命令。如果脚本不以纯文本显示输出,用户可能会发现脚本的可用性较低。
gmxoilav4#
要快速而又简单地执行此操作,您可以通过管道将文本发送到 less 或 more:
有各种 less 和 more 标志允许脚本在到达文本底部时继续。