如何在perl中执行if语句?
问题描述:
如果在Perl中if语句有问题,我的if语句不起作用。我做错了什么,因为我使用严格和警告模块,但仍然我的if语句不起作用。如何在perl中执行if语句?
#!/usr/bin/env perl
use strict;
use warnings;
sub Granted
{
print "\n\nAccess Granted\n\n";
}
sub Access
{
print "\n\n\n\n";
sleep 1;
print "Enter your name: ";
my $name = <STDIN>;
sleep 1;
if ("$name" eq "jake")
{
Granted
}
}
Access
答
您误诊了这个问题。 if
没问题,问题是你正在比较输入的数据。
从文件句柄中读取时,会包含记录分隔符(默认情况下为新行)。您可以比较"jake\n"
到"jake"
。
另请参阅chomp
。
没有理由使用'“$ name”'。只需使用'$ name'。但是在做比较之前,你必须在'$ name'的末尾修剪换行符。 –
虽然它是有效的,但是你可以这样写(偶然,我猜),请调用你的子程序,例如:'授予();',即用parens()'和最后一个';'。 '''_may_在块中的最后一个语句之后可以省略(像你一样),但它很丑。 – PerlDuck
如有疑问:'使用Data :: Dumper; $数据::自卸车:: Useqq = 1;打印Dumper $ name;' – TLP