perl的undef的问题
发布网友
发布时间:2022-04-23 12:51
我来回答
共4个回答
热心网友
时间:2022-05-07 06:55
我来回答你
第一个问题:
$string .= “more text\n”;
首先"."操作你应该知道它是可以用来连接字符串的,那么在上面这个语句事实上是$string = $string .“more text\n”;
那么,在执行这个语句前,如果$string 为undef,则执行完后$string 为“more text\n”;
如果$string=“foo ”,那么执行完以后$string=“foo more text\n”。
第二个问题:
$madonna=<STDIN>;
这个语句是一个等待输入的语句,如果没有输入,命令行会一直在那里等待。
因此,你的这个小程序是不会走到else的语句块里的。因为,你无论在键盘上做了什么事,包括仅仅做了一下回车,$madonna这个变量中都已经有值了。
热心网友
时间:2022-05-07 08:13
(1)针对字符串的情形:
$string .= “more text\n”;
如果$string 为undef;则是空串后接“more text\n”。反之,则是其值后接“more text\n”。
这句话是什么意思?
回答:由于变量在第一次赋值前有一个特殊值undef,按照Perl 来说就是:“这里什么也没有,请继续”。如果这里的“什么也没有”是一些“数字”,则表现为0。如果是“字符串”,则表现为空串。所以这里的意思也就是说undef字符串为空。
(2)还有就是我不管输入什么,if的条件都是真,有什么情况让他我输入的为假呢?
回答:正是因为你输入了东西,if才会为真,如果你不做任何输入的话,它就会为假。
热心网友
时间:2022-05-07 09:48
1。$string .= “more text\n”;
.=这个不是直接赋值,而是PERL中的字符串连接符。
2。在$madonna=<STDIN>;语句中只要你输入了东西$madonna就被定义并且赋值了所以if条件为真
热心网友
时间:2022-05-07 11:39
输入eof(文件结束符)然后回车则输入为假。
eof在windows中用ctrl+z输入,在linux中用ctrl+d输入