注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FY

Johnson 's Blog

 
 
 

日志

 
 

perl 中的undef  

2012-04-26 22:31:13|  分类: perl |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于undef和""的问题

my(@class,@style,@level,$num, $string_class,$string_level,$string_style,$string); #这个语句如果换成下面这个语句 

#my(@class,@style,@level,$num, $string_class,$string_level,$string_style,$string)=undef或则是"";都会取不到@class中的第一个数组元素. 
==============================
這當然會有問題...
因為你前面是list ...
my() = $var;
後面只有一個element..
所以$class[0] 被undef了......
自然數值就不會出現了....
你要初始化..要用
my @class=();
my @style=();
這樣子......不要偷懶了...
###################################################################
你的想法沒錯...

push..會把數值加在最後一個有值的的後面..
老話一句..
array要清空不要用 = undef...
要用
@ary =();
or 
undef @ary;

而variable則用 
$var = ""  or 
undef $variable; 

前面可能有點講錯..sorry..

undef是個function.......
@list = undef;
@list 中的第一個element
就被undef了...也就是說略過....注意看看
perldoc -f undef 內容.....
所有@list中個element都從第二個開始...而不是第一個..

###############################################################
一个简单的应用例子
@test=("a","b","c");
print scalar(@test);
undef(@test);
print scalar(@test);


######################################################################################
小骆驼书中记载:
在变量被赋值之前使用它会有什么情况发生呢?通常不会有什么严重的后果。变量在第一次赋值前有一个特殊值undef,按
照Perl 来说就是:“这里什么也没有,请继续”。如果这里的“什么也没有”是一些“数字”,则表现为0。如果是“字符串”,
则表现为空串。但undef 既非数字也非字符串,它是另一种标量类型



如果想声明自己的undef 值,可以使用undef:
$madonna = undef ; #同$madonna 从未被初始化一样
######################################################################################
  评论这张
 
阅读(1260)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018