这些对Perl';什么是印刷品?
以下两种说法的区别在哪里这些对Perl';什么是印刷品?,perl,Perl,以下两种说法的区别在哪里 打印“姓氏=”,$myVal,“\n” 及 打印“姓氏=”.$myVal。“\n” 我对它们进行了测试,结果都是一样的。有什么区别吗 谢谢前者将打印列表中的每个项目,并用$,分隔。后者首先连接所有内容,因此没有任何内容可分离。除非$,中有可打印的内容,否则语句之间没有显著差异。据我所知打印也可以使用列表,我认为第一段代码(逗号分隔)就是这种情况。第二个(带“.”)只是字符串追加,换句话说,第一个调用发送三个参数以打印,而第二个调用发送一个参数 编辑:这里是打印可以接受的
打印“姓氏=”,$myVal,“\n”代码>
及
打印“姓氏=”.$myVal。“\n”
我对它们进行了测试,结果都是一样的。有什么区别吗
谢谢前者将打印列表中的每个项目,并用$,
分隔。后者首先连接所有内容,因此没有任何内容可分离。除非$,
中有可打印的内容,否则语句之间没有显著差异。据我所知打印
也可以使用列表,我认为第一段代码(逗号分隔)就是这种情况。第二个(带“.”)只是字符串追加,换句话说,第一个调用发送三个参数以打印,而第二个调用发送一个参数
编辑:这里是打印可以接受的列表,这是您正在传递的列表。Print只会对列表中的所有内容执行它的操作(即输出),即姓氏=
,$myVal
,以及\n
第二个示例必须先将所有内容浓缩,然后打印出来
逗号的使用并不一致,这也是两者之间的区别 Perl程序员可能会这样写:
print "surname=$myVal\n";
它看起来确实在做同样的事情,不是吗?在你的例子中,它也做了同样的事情。如果将标量变量替换为数组,则差异更为明显
my @var = qw(some data);
print "value=", @var, "\n";
print "value=". @var. "\n";
区别在于传递给print函数的参数数量不同。如果使用连接运算符(.),则参数将连接到一个字符串中,print将获得一个参数。如果使用逗号,则print将获得参数列表
当然,可以在同一个打印调用中混合使用这些方法
print "surname=" ,$myVal . "\n";
另一个很好的例子是使用localtime的返回值
print 'The time is ', localtime, "\n";
print 'The time is '. localtime, "\n";
正如人们之前所说,
将字符串串联起来,,
分离数组元素
使用
表单需要考虑的一件事是,由于内存管理,在某些非常特定的场景中会出现性能问题:
版本需要首先在内存中创建新字符串,并不断扩展寻址内存(有人可以在这一部分详细介绍一下吗?)。如果你在一个循环中打印100万次,使用上千个非常大的字符串串接,
版本与,
版本相比,性能会非常差。这就像是将整个文件存储到内存中,而不是逐行处理。但在现代计算机的日常生活中,普通人不会注意到这个问题