Perl 区别于;52“;52岁?
伙计们,perl并不像我想象的那么简单,我只是转向了操作符,我写了一些代码,但我无法理解编译器是如何处理它们的Perl 区别于;52“;52岁?,perl,Perl,伙计们,perl并不像我想象的那么简单,我只是转向了操作符,我写了一些代码,但我无法理解编译器是如何处理它们的 $in = "42" ; $out = "56"+32+"good"; print $out,; 上面代码的输出是88,好的东西到哪里去了?现在让我们看看另一个 $in ="42"; $out="good52"+32; print $out ; 对于这些,输出是32。问题是,我们刚才存储在$out中的善在哪里消失了,值52在“”之间,为什么编译器只是将值打印为32,而不是剩
$in = "42" ;
$out = "56"+32+"good";
print $out,;
上面代码的输出是88,好的东西到哪里去了?现在让我们看看另一个
$in ="42";
$out="good52"+32;
print $out ;
对于这些,输出是32。问题是,我们刚才存储在$out中的善在哪里消失了,值52在“”之间,为什么编译器只是将值打印为32,而不是剩余的文本
$in=52;
$in="52";
两者都做同样的工作“52”不作为一个文本工作。因为我们加上“52”+32等于84。发生了什么事
$in = "hello";
$in = hello;
两者都做同样的工作?或者它们是否不同,但如果我打印,则会给出相同的输出。这只会吞噬我的大脑。这太令人困惑了,因为当“52”或“52”和“hello”或“hello”做相同的工作时,它们为什么会引入。我只需要解释一下上述代码为什么会出现这种情况。在perl中,是数字上下文中的字符串(如使用
+
运算符时)转换为数字
在perl中,您可以使用
(点)运算符连接字符串,而不是+
如果使用+
,perl将尝试将所有操作数解释为数字。这对数字表示的字符串很有效,否则将得到0。这解释了您看到的内容
$in=52;
$in=“52”
两者都做同样的工作“52”不作为一个文本工作。因为当我们加上“52”+32它给84
这里的问题不在于变量定义。一个是字符串,另一个是数字。但当您在数字表达式(+
)中使用字符串时,它将转换为数字
关于你的第二个问题:
$in=“hello”
如您所期望的那样定义字符串
$in=hello;
只会将hello符号(无论定义如何)复制到变量上。这实际上不是“严格”perl,如果在文件中设置使用严格;
,perl会对此表示不满
在perl中,数字上下文中的字符串(如使用
+
运算符时)被转换为数字
在perl中,您可以使用
(点)运算符连接字符串,而不是+
如果使用+
,perl将尝试将所有操作数解释为数字。这对数字表示的字符串很有效,否则将得到0。这解释了您看到的内容
$in=52;
$in=“52”
两者都做同样的工作“52”不作为一个文本工作。因为当我们加上“52”+32它给84
这里的问题不在于变量定义。一个是字符串,另一个是数字。但当您在数字表达式(+
)中使用字符串时,它将转换为数字
关于你的第二个问题:
$in=“hello”
如您所期望的那样定义字符串
$in=hello;
只会将hello符号(无论定义如何)复制到变量上。这实际上不是“严格”perl,如果在文件中设置使用严格;
,perl会对此表示不满
+
是一个数学加法,它对字符串不起作用。如果您使用它,Perl将假定您在处理数字,因此会丢弃任何不起作用的内容
要连接字符串,请使用
:
$str = "blah " . "blah " . "blah";
就“52”
和52
之间的区别而言,没有区别。因为Perl中没有任何东西(命令、注释等)可以以数字开头,编译器不需要引号来知道该做什么。首先,请阅读
您的问题是,+
是一个数学加法,它对字符串不起作用。如果您使用它,Perl将假定您在处理数字,因此会丢弃任何不起作用的内容
要连接字符串,请使用
:
$str = "blah " . "blah " . "blah";
至于
“52”
和52
之间的区别,没有区别。因为没有区别(命令、注释等)在Perl中,可以从数字开始,编译器不需要引号来知道该做什么。在Perl中,+
是一个数字运算符。它试图将其两个操作数解释为数字。51
是数字51。“51”
是一个包含两个数字的字符串,+
运算符尝试将该字符串转换为一个数字,即51,并在计算中使用它。“hello”
是一个包含五个字母的字符串,当+
运算符尝试将其解释为一个数字时,它等于0(零)
因此,你的第一个例子是:
$out = "56"+32+"good";
这就像:
$out = 56 + 32 + 0;
您的打印
然后在输出时将其转换为字符串,得到88
在perl中,
+
运算符将其参数视为数字,并尝试将非数字的任何内容转换为数字运算符用于连接字符串:如果操作数不是字符串,它将尝试将其转换为字符串。在Perl中,+
是数字运算符。它尝试将其两个操作数解释为数字。51
是数字51。“51”
是一个包含两个数字的字符串,+
运算符尝试将该字符串转换为一个数字,即51,并在计算中使用它。“hello”
是一个包含五个字母的字符串,当+
运算符尝试将其解释为一个数字时,它等于0(零)
因此,你的第一个例子是:
$out = "56"+32+"good";
这就像:
$out = 56 + 32 + 0;
您的打印
然后在输出时将其转换为字符串,得到88
在perl中,+
运算符将其参数视为数字,并尝试转换任何非数字的内容