我正在尝试将命令输出存储到文件中(工作正常),然后我想要做的是将文件内容显示到屏幕上。
我的问题是我希望它显示在部分中(例如一次20行)并让用户按[Enter]
或任何键继续下一部分。我正在考虑将文件内容传递给more
但是它会立即显示整个文件内容,而不是按部分显示。
这是我负责打开文件,写入文件然后在屏幕上显示文件的部分代码。
open FILE, '>', $filename;
print FILE @command;
open FILE, '<', $filename;
while (<FILE>) {
open MORE, '| more';
print MORE;
}
close MORE;
close FILE;
答案 0 :(得分:2)
你只需要循环open more
:
close FILE;
open FILE, '<', $filename;
open MORE, '| more';
while (<FILE>) {
print MORE;
}
close MORE;
close FILE;
或不使用更多:
open my $file, '<', $filename or die("$!");
while (@command) {
print join("\n", splice(@command, 0, 20));
<>;
}
close $file;
答案 1 :(得分:2)
use strict;
use warnings;
my @command = map "output line $_\n", 1..100;
my $page_size = 20;
my $n = 0;
for my $line (@command) {
print $line;
$n ++;
if ($n % $page_size == 0) {
print "--More--";
<>;
}
}