菜鸟问题:请教一while和if 语句嵌套使用问题

菜鸟问题:请教一while和if 语句嵌套使用问题

菜鸟问题:请教一while和if 语句嵌套使用问题
小弟最近刚刚开始学习perl,以前也没有接触过编程,我在看perl教程-----win32版的教程例子中遇到一个问题,也许是因为我没有语言基础的关系,所以很难理解这种循环的结构,我看过类似的perl教程,只找到了单独的while 和 if - elsif - elsif的使用,没有找到嵌套中的用法.我也尝试过自己改变,但是总是出错,所以希望请高手们帮我看看问题到底出在哪里了
代码文件:
---------------------------------------------------------------------------------------------------------------------------
#! /usr/bin/perl
@words = qw(akira pai lion); #指定3个密码
print "请输入你的名字? ";
$name = <STDIN>; #第一次输入名字
chomp $name;
if ($name eq "xiong") { #条件是如果输入的是xiong条件为真
print "熊哥,您来了 ?\n";
} else { #如果条件为假,执行提示输入密码
print "你好 $name!最近玩VF总输吧,想知道怎么才能战胜MR.熊吗? \n";
print "你要先输入SEGA给的密码啊 ";
$guess = <STDIN>;
chomp $guess; #第2次输入,输入内容为密码
$i = 0;
$correct = "maybe";
while ($correct = "maybe") {
if ($words[$i] eq $guess) { #条件为如果输入为list表中第一个word为真
$correct = "yes";
} elsif ($i < 2) { #如果if条件为假,elsif条件为真,执行下面的代码(这个不知是不是这么解释)
$i = $i + 1;
} else { #如果条件为假(这个应该是if和elsif条件都为假吧),执行下面的代码
print "小子,没有密码你跑来混啊!再给你一次机会重新输入 ";
$guess = <STDIN>;
chomp $guess; #(这里是再次输入密码)
$i = 0;
}
}
print "正在退出身份验证 \n"; #(这里的应该是到了while条件为假退出循环吧)
}
print "你想赢MR.熊,十年尚早啊!\n"; #(这里是不是应该是:如果用户名判断为假,用户又正确的输入了密码结束循环查找之后输出的内容啊)
--------------------------------------------------------------------------------------------------------------------------------
我把一些不明白的用注释写了出来, 我想在判断用户身份不为xiong,而判断用户密码为真的时候,在
屏幕输出一段话,不知道要加在哪里啊? 请高手帮忙指点
已经找到答案了
原来是while循环中的条件判断用了=应该用 eq
不用再麻烦大家了
可是可是, 你的程序里头的.
可是可是, 你的程序里头的文字比较搞笑~~ [CCB]20[/CCB]
是的,这方面应该特别小心
因为在PHP等其他语言中大多通用==判断,但在Perl中如果是字符串
是要用eq判断的.
不过有意思的是有一个特殊的例子,就是ColdFusion,它里面是不用==
判断的,而全部统一使用eq,好象是因为和一些输出符号冲突(忘了,呵).