【发布时间】:2016-02-29 00:13:58
【问题描述】:
Perl 中的 if 语句有问题,我的 if 语句不起作用。我做错了什么,因为我正在使用严格和警告模块,但我的 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
【问题讨论】:
-
没有理由使用
"$name"。只需使用$name。但是在进行比较之前,您必须在$name末尾修剪换行符。 -
虽然它像你写的那样有效(我猜是偶然的),但请像这样调用你的子例程:
Granted();,即带有括号()和最后一个;。;可以在块中的最后一个语句之后被省略(就像你一样),但它很难看。 -
如有疑问:
use Data::Dumper; $Data::Dumper::Useqq=1; print Dumper $name;
标签: perl perl-module