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
1个回答
0
投票

始终将

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

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

一种方法是检查字符串输入的lengthchomp 输入以删除任何换行符也是一个很好的做法。

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 新手,请参阅 基本调试清单

© www.soinside.com 2019 - 2024. All rights reserved.