不知道该怎么做,但是我去了一个程序,每次运行时我必须输入两个数据点,并且很难在控制台中找到它们 - 眯眼等等。有没有办法着色INPUT,所以当我重复循环程序(把这些元组放入等等)时,我可以跟踪上次程序运行的位置。我希望它的颜色是石灰绿的倒置颜色 - 我现在处于“反转颜色”模式。
我想要实现的是在我输入输入时着色的着色 - 你知道,输入流着色等等。
print "Enter where you'd like me to begin: ";
my $begin = <STDIN>;
chomp $begin;
exit 0 if ($begin eq "");
print "\n";
print "Enter where you'd like me to end: ";
my $end = <STDIN>;
chomp $end;
exit 0 if ($end eq "");
print "\n";
答案 0 :(得分:1)
Perl程序在您键入时回显STDIN
。由于您只想对输入的内容进行着色,因此您必须捕获它然后用颜色打印它。我修改了你的程序来展示如何做到这一点。
#!/bin/perl
use strict;
use warnings;
use Term::ANSIColor;
use Term::ReadKey;
ReadMode('noecho'); # don't echo
print "Enter where you want me to begin: ";
my $begin = <STDIN>;
chomp $begin;
exit 0 if ($begin eq "");
print colored("$begin\n", 'red');
print "Enter where you'd like me to end: ";
my $end = <STDIN>;
chomp $end;
exit 0 if ($end eq "");
print colored("$end\n", 'red');
ReadMode(0); # back to normal
示例输出:
输入您希望我开始的地方:1
输入您希望我结束的地方:2
(1和2为红色)
红色是绿色的倒数,所以我选择它是因为你在控制台上以反色模式运行。你也可以尝试使用bright_red,如果它不够接近你想要的柠檬绿。
的文档