永发信息网

perl中的defined用来判断某个变量是否为空??求解defined有什么用?

答案:4  悬赏:70  手机版
解决时间 2021-04-08 00:57
perl中的defined用来判断某个变量是否为空??求解defined有什么用?
最佳答案
$a=;
chomp $a;
if(defined($a)and $a ne""){
print "The input was $a";
}
else{
print "No input avaiable!";
}
#这样就行了 ,我觉得defined这个关键字用在判断从输入获取值这个例子是不合适的,不管有没有输入,它总要被"\n"初始化.因此用$a ne""判断即可
$a=;
chomp $a;
if($a ne""){
print "The input was $a";
}
else{
print "No input avaiable!";
}
全部回答
我觉得这些回答都不准确
这个《perl入门》里面的例子是有问题的,首先你看这一版本来就有一个错误。
defined是perl的函数,所以显然不应该有“$”不然就成了变量了~
然后我们再说这个例子,这个例子根本不可会输出“No input available!/n”因为系统会自动把你按的回车转成识别成字符串的内容。
所以这个例子应该改成
#!/usr/bin/perl
chomp($a = );
if(defined($a)){
print "The input was $a";
}else{
print "No input available!\n";
}
用chomp命令把最后一个\n砍掉,这样,你如果什么都不输入,直接回车,你键入的才是一个undef,这样defined函数才有效果,如果这个程序如上,有defined,那么他的输出会是
The input was (后面会直接接你当前的目录,因为没有回车不会让你的目录换行)
如果你把程序的defined函数删除
#!/usr/bin/perl
chomp($a = );
if($madonna){
print "The input was $a";
}else{
print "No input available!\n";
}
如上,这样你运行以后,直接按回车,你的输出会是
No input available!
因为你最后打的回车被chomp砍掉了,所以$a变量就没有被赋值,也就成了undef,而你又删除了defined函数,也就是这个$a依然是undef,所以,这时候判断条件才是false,才会输出else的内容~本人亲测,名誉做保~哇卡卡~想起了作者的一句话,这本书的质量在于译者~希望对大家有帮助~
defined 是用来检查一个变量是否存在的。
比如用于hash结构的查询,不存在则构建
if (!defined($hash{$key})) {
$hash{$key} = $value;
# do something else here ...
}
“注意:此函数作用不是判断某个变量是否已经定义,而是用来判断某个变量是否为空。”
Look at this script and you will understand:
use Moose::Autobox;
my $x;
$x->defined; # false

$x = 10;
$x->defined; # true
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题据统计,我国的网民人数仅次于美国,排
没有重力生活会怎么样
怎么查看历史某日全部股票涨幅情况
张家寨子地址在哪,我要去那里办事
安徽省国土资源厅网站
饭后口酸,舌苔发白,不敢吃甜食怎么回事
求SAP系统中建生产订单及对订单投料和交货等
小明设计了探究“并联电路电流规律”的实验,
凤巢演绎酒吧地址在哪,我要去那里办事
赛尔号给火刃装个机械系S技能石 想打螳螂提升
朗德鹅跟灰雁的关系,法国朗德鹅是由灰雁驯养
昆明螺丝湾批发市场家电在几楼啊?
煤矿测量规程最新什么时候颁布的?
大家都说禾中味道靠谱,是不是真的啊
初中文化学习,java难度大吗?建议学吗,可以
推荐资讯
正在游着泳,突然夏天变冬天,跑的慢的变成冰人
《灌篮高手》里面的问题军团是在第几集被安西
9.5厘米的电源插座
第一次工业革命最为重要的发明是谁改良的什么
热工仪表推荐,热工仪表什么牌子好,热工仪表
有一种化妆品一般新娘结婚那天才用到的,据说
徐培晨作品拍卖价格,按多少钱一平尺
蚕蛹炸着吃和煮着吃 哪种营养流失的少?
Which club won the Asian League Champion l
国外板楼与塔楼现状是什么?
水濑国家几级保护动物
雅苑汽车美容中心在哪里啊,我有事要去这个地
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?