如何防止我的 Perl 脚本在运行时回显终端中输入的内容?
我尝试弄乱system("stty -echo");
然后system("stty echo");
在最后运行,但是一旦脚本结束,它仍然会显示我键入的内容。我一直在玩这个测试脚本。
#!/usr/bin/perl
use strict;
use warnings;
system("stty -echo");
for (1..15) {
print "$_\n";
sleep(1);
}
system("stty echo");
如果从未到达调用的第二个系统,这可能会弄乱终端(也许使用一个END
块,但这也不能保证工作)。这也只是 Unix,我的脚本也在 Windows 上运行。
我也找到了模块Term::Readkey
,但我不希望引入任何其他模块。
我也尝试关闭STDIN
,但这也不起作用。
让这个问题变得更容易的是我在执行过程中根本不需要阅读STDIN
,我可以忽略它。
我对这类问题没有太多经验,希望它比我想象的要容易。谢谢!
编辑:如果这有所作为,我在 Perl 5.10 上。