Chinaunix
标题:
怎么给函数传一个$的参数啊?为什么参数为空,@_确为真呢?
[打印本页]
作者:
frilland
时间:
2009-07-23 11:14
标题:
怎么给函数传一个$的参数啊?为什么参数为空,@_确为真呢?
my $xx;
sub a
{
if(@_)
{
print "true";
}
else
{
print "false";
}
}
&a($xx);
我想传一个变量$xx来判断其存在不存在,当我没有给$xx赋值的时候,@_却为真了,上面的代码打印“true”,这是为什么呢?
作者:
yashiro_lj
时间:
2009-07-23 11:28
if(@_)只是判断array是否为空,因为传入的$xx会作为@_的第一个元素,所以@_不为空列表,故打印出true
作者:
Perl_Er
时间:
2009-07-23 12:02
标题:
回复 #1 frilland 的帖子
if(@_) 是判断@_ 而不是 $xx
作者:
cheese_lee
时间:
2009-07-23 12:06
if (defined $_[0])
作者:
frilland
时间:
2009-07-23 13:56
标题:
回复 #2 yashiro_lj 的帖子
呵呵,是这样的噢,知道咯~谢谢哈~
作者:
frilland
时间:
2009-07-23 13:58
标题:
回复 #3 Perl_Er 的帖子
恩,呵呵,知道咯,谢谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2