Perl 初学者 / IF 语法

问题描述 投票:0回答:1

我输入了一些程序来刷新我的 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 也应该出现。

perl input logic
1个回答
0
投票

始终将

use warnings;
添加到您的代码中,以获取有关其不起作用的更多信息:

参数“”在 ... 行 ... 的数字 eq (==) 中不是数字, 1号线.

一种方法是检查字符串输入的

length

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";
}
© www.soinside.com 2019 - 2024. All rights reserved.