我的列表(@degree)是从SQL命令构建的.SQL中的NVL命令不起作用,测试如下:
if (@degree[$i] == "") if (@degree[$i] == " ") if (@degree[$i] == '') if (@degree[$i] == -1) if (@degree[$i] == 0) if (@degree[$i] == ()) if (@degree[$i] == undef)
$ i是for循环中的计数器变量.基本上它通过并从表中获取独特的度数并最终创建("AFA", "AS", "AAS", "", "BS")
.列表并不总是很长,空元素并不总是在那个位置3.
有人可以帮忙吗?
我想要在for循环期间进行测试,或者在循环完成后对这个空元素进行测试,然后将其替换为单词"OTHER".
谢谢你的一切 - 肯
首先,数组中的第i个元素是$ degree [$ i],而不是@degree [$ i].其次,"=="用于数字比较 - 使用"eq"进行词汇比较.第三,试试if (defined($degree[$i]))
保罗所说的一切.而且,如果你需要一个例子:
my @degree = ('AFA', 'AS', 'AAS', '', 'BS'); $_ ||= 'OTHER' for @degree; print join ' ' => @degree; # prints 'AFA AS AAS OTHER BS'