今天在Perl课堂上,一个学生上交了一个令我烦恼的作业。我们正在研究ARGV,但结果并非我预期的那样。他的程序(meme.pl)是:
#!/usr/bin/perl
$A = $ARGV[0];
chomp($A);
if ($A == "godzilla"){
print "$A\n";
}
else {
print "We need a monster's name\n";
}
如果输入:
% ./meme.pl bob
结果是
% bob
因此变量分配有效,但是无论在命令行上键入什么,条件($ A ==“godzilla”)都是正确的。我期望由于$ ARGV [0]是“bob”并且$ A = $ ARGV [0],因此$ A =“godzilla”应该不正确。
我想念什么?我已经花了几个小时来梳理这段代码,而且我知道我只是忽略了一些小事情。
最佳答案
使用eq
而不是==
来测试字符串是否相等:
if ($A eq "godzilla"){
有关更多信息,请访问perldoc perlop。
注意:在脚本顶部添加
use strict;
和use warnings;
会引导您朝正确的方向发展。