我写了一个小程序来刷新我的 Perl 知识,特别是我感兴趣的 IF 和 Else-Case。如何让 Perl 识别输入为空?我用“==”和“eq”检查了输入,但我的程序总是说“你什么也没输入!”。
#!/usr/bin/perl
# input line
$input_line = "";
# terminal input
print "Input:";
$input_line = <STDIN>;
# input verification
print "Your input was: ", "$input_line";
print "\n";
# decider terminal input
if ($input_line == "" or $input_line eq "")
{ print "You have typed nothing!";
print "\n"; }
else
{ print "Typing nothing is bad!";
print "\n"; }
如果我输入“Hello”,输出是:
Input:Hello
Your input was: Hello
You have typed nothing!
如果我输入
Hello
,那么就有输入。
如果我什么也没输入,那么输出应该写“你什么也没输入!”,并且 Else-Case 也应该出现。
始终将
use warnings;
添加到您的代码中,以获取有关其不起作用的更多信息:
参数“”在 ... 行 ... 的数字 eq (==) 中不是数字, 1号线.
一种方法是检查字符串输入的length。 chomp 输入以删除任何换行符也是一个很好的做法。
use warnings;
use strict;
# input line
my $input_line = "";
# terminal input
print "Input:";
$input_line = <STDIN>;
chomp $input_line;
# input verification
print "Your input was: ", "$input_line";
print "\n";
# decider terminal input
if (length $input_line == 0) {
print "You have typed nothing!";
print "\n";
}
添加
use strict;
也是一个好习惯。 在这种情况下,您需要使用 my
来声明变量。
由于您是 Perl 新手,请参阅 基本调试清单